Edit report at http://bugs.php.net/bug.php?id=43338&edit=1

 ID:               43338
 Comment by:       daniel dot seif at castex dot de
 Reported by:      daniel dot seif at castex dot de
 Summary:          SoapEnc Arrays and Single Element Arrays
 Status:           Open
 Type:             Bug
 Package:          SOAP related
 Operating System: *
 PHP Version:      5.2CVS-2009-04-25

 New Comment:

Checked again against PHP 5.3.2, the issue is still unsolved.



I created two php tests for this. One for wsdl-mode on (works as
expected) and one for wsdl-mode off (erroneous as described here)



You can download them here: http://castex.de/stuff/phpt-bug43338.zip



Please do me a favor and take care of this issue. If I had enough
knowledge, I'd try to submit a patch, but obviously I don't ...


Previous Comments:
------------------------------------------------------------------------
[2009-04-25 10:34:18] daniel dot seif at castex dot de

It's still not working in 5.2.10-dev as of today. I tested it with the
windows binary build from yesterday.



I provided you a test-package, you can download it here:
http://castex.de/stuff/php-bug43338.zip

------------------------------------------------------------------------
[2007-11-19 17:50:57] daniel dot seif at castex dot de

Description:
------------
If a SoapServer-Object is instantiated with the option
SOAP_SINGLE_ELEMENT_ARRAYS (to automatically get an array if defined in
the wsdl) together with SOAP_USE_XSI_ARRAY_TYPE (to allow array types
instead of wsdl types), an request sent with an SOAPEnc:Array will be
transformed to an array with a "deepness" of 2.

Reproduce code:
---------------
class SoapHandler {

        function getSomething($arguments) {

                print_r($arguments);

        }

}



/**

 * SoapServer

 */



$server = new SoapServer($wsdl,

        array(

                'uri' => $uri,

                'features' => SOAP_USE_XSI_ARRAY_TYPE + 
SOAP_SINGLE_ELEMENT_ARRAYS));

$server->setClass('SoapHandler');

$server->handle();



/**

 * request

 **/



<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>

        <SOAP-ENV:Body>

                <ns4848:getSomething>

                        <arguments xsi:type="SOAP-ENC:Array"
SOAP-ENC:arrayType="xsd:string[2]">

                                <item xsi:type="xsd:string">String 1</item>

                                <item xsi:type="xsd:string">String 2</item>

                        </arguments>

                </ns4848:getRouteMiles>

        </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Expected result:
----------------
Array

(

    [0] => String 1

    [1] => String 2

)



Actual result:
--------------
Array

(

    [0] => Array

        (

            [0] => String 1

            [1] => String 2

        )



)


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=43338&edit=1

Reply via email to