From:             matt dot jones at plumgroup dot com
Operating system: *
PHP version:      5.0.5
PHP Bug Type:     Feature/Change Request
Bug description:  SOAP Client/Server Complex Object Support

Description:
------------
When implementing a function to handle a soap request in a SoapServer the
object that is returned has a specific and obvious structure.  It is an
object with basic typed members to represent the attributes and one or
more complex objects (or an array of objects) for subtags which are built
as a similar sort of object.

What I am proposing would be to allow for this same complex object
structure to be passed in and parsed by both the SoapClient->{function()}
and to be returned by the functions specified to handle the soap request
for the SoapServer.

Reproduce code:
---------------
The following is some partial source code that represents how I would like
to see objects supported in the client-side:

http://roberts.plumgroup.com/~mjones/soapclient.txt

You can see that there are multiple classes created to contruct the
request.  The code makes use of both single objects and arrays of objects
to create a complex request.  You can find a version of the WSDL that this
is partially implementing here:

http://roberts.plumgroup.com/~mjones/test.wsdl

Expected result:
----------------
The system should be able to accept this format for incoming objects to
properly create a complex soap request such as:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns1="http://testurl/Message";>
    <SOAP-ENV:Body>
        <ns1:ivrEvents activityId="101" messageId="12345" source="IVR"
version="1.0">
            <logOnEvent audienceMemberId="34567"
timestamp="2005-11-07T12:27:33"/>
            <logOffEvent audienceMemberId="34568"
timestamp="2005-11-07T12:27:33" smokeStatus="Smoked"
callInitiator="IVR"/>
            <logOffEvent audienceMemberId="34569"
timestamp="2005-11-07T12:27:33" smokeStatus="SmokeFree"
callInitiator="IVR"/>
        </ns1:ivrEvents>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

This is the format it chooses for objects sent to SoapServer handler
functions, it should support it for SoapClient function calls.

Actual result:
--------------
With the above code the current implementation properly creates the
logOnEvent subtag and stops there no logOffEvents are added.  If you
attempt to add multiple logOnEvents alone in an array they are not
properly added as multiple logOnEvents either.

-- 
Edit bug report at http://bugs.php.net/?id=35142&edit=1
-- 
Try a CVS snapshot (php4):   http://bugs.php.net/fix.php?id=35142&r=trysnapshot4
Try a CVS snapshot (php5.0): 
http://bugs.php.net/fix.php?id=35142&r=trysnapshot50
Try a CVS snapshot (php5.1): 
http://bugs.php.net/fix.php?id=35142&r=trysnapshot51
Fixed in CVS:                http://bugs.php.net/fix.php?id=35142&r=fixedcvs
Fixed in release:            http://bugs.php.net/fix.php?id=35142&r=alreadyfixed
Need backtrace:              http://bugs.php.net/fix.php?id=35142&r=needtrace
Need Reproduce Script:       http://bugs.php.net/fix.php?id=35142&r=needscript
Try newer version:           http://bugs.php.net/fix.php?id=35142&r=oldversion
Not developer issue:         http://bugs.php.net/fix.php?id=35142&r=support
Expected behavior:           http://bugs.php.net/fix.php?id=35142&r=notwrong
Not enough info:             
http://bugs.php.net/fix.php?id=35142&r=notenoughinfo
Submitted twice:             
http://bugs.php.net/fix.php?id=35142&r=submittedtwice
register_globals:            http://bugs.php.net/fix.php?id=35142&r=globals
PHP 3 support discontinued:  http://bugs.php.net/fix.php?id=35142&r=php3
Daylight Savings:            http://bugs.php.net/fix.php?id=35142&r=dst
IIS Stability:               http://bugs.php.net/fix.php?id=35142&r=isapi
Install GNU Sed:             http://bugs.php.net/fix.php?id=35142&r=gnused
Floating point limitations:  http://bugs.php.net/fix.php?id=35142&r=float
No Zend Extensions:          http://bugs.php.net/fix.php?id=35142&r=nozend
MySQL Configuration Error:   http://bugs.php.net/fix.php?id=35142&r=mysqlcfg

Reply via email to