Edit report at https://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.*
 Block user comment: N
 Private report:     N

 New Comment:

Not sure, if this is the right way to let this issue pop up, but the problem is 
still not solved. 

Will this be fixed any time soon?


Previous Comments:
------------------------------------------------------------------------
[2010-07-22 03:01:15] daniel dot seif at castex dot de

Since the problem exists in the 5.2 as well as in the 5.3 branch, I changed the 
affected PHP Version

------------------------------------------------------------------------
[2010-07-22 02:47:28] daniel dot seif at castex dot de

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 ...

------------------------------------------------------------------------
[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 https://bugs.php.net/bug.php?id=43338&edit=1

Reply via email to