#35142 [Csd]: SOAP Client/Server Complex Object Support
ID: 35142 User updated by: matt dot jones at plumgroup dot com Reported By: matt dot jones at plumgroup dot com Status: Closed Bug Type: SOAP related Operating System: * PHP Version: 5CVS-2005-11-07 (snap) Assigned To: dmitry New Comment: Thanks, this works perfectly! Just a heads up to people using this patch though: You must clear out your WSDL cache for the patch to override the previous incorrect behavior. Previous Comments: [2005-11-08 09:37:05] [EMAIL PROTECTED] Fixed in CVS HEAD and PHP_5_1. [2005-11-08 00:54:42] [EMAIL PROTECTED] Assigned to the maintainer of ext/soap [2005-11-08 00:07:02] matt dot jones at plumgroup dot com I have tested this with php5-win32-latest.zip (it was easier than recompiling for linux) and I am seeing the exact same behavior. Providing an array of objects is not interpreted properly and having more than one subtag object results in the first tag to appear in the WSDL being the only response. [2005-11-07 21:39:17] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip [2005-11-07 18:47:26] matt dot jones at plumgroup dot com 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 this bug report at http://bugs.php.net/?id=35142edit=1
#35142 [NEW]: SOAP Client/Server Complex Object Support
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=35142edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=35142r=trysnapshot4 Try a CVS snapshot (php5.0): http://bugs.php.net/fix.php?id=35142r=trysnapshot50 Try a CVS snapshot (php5.1): http://bugs.php.net/fix.php?id=35142r=trysnapshot51 Fixed in CVS:http://bugs.php.net/fix.php?id=35142r=fixedcvs Fixed in release:http://bugs.php.net/fix.php?id=35142r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=35142r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=35142r=needscript Try newer version: http://bugs.php.net/fix.php?id=35142r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=35142r=support Expected behavior: http://bugs.php.net/fix.php?id=35142r=notwrong Not enough info: http://bugs.php.net/fix.php?id=35142r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=35142r=submittedtwice register_globals:http://bugs.php.net/fix.php?id=35142r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=35142r=php3 Daylight Savings:http://bugs.php.net/fix.php?id=35142r=dst IIS Stability: http://bugs.php.net/fix.php?id=35142r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=35142r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=35142r=float No Zend Extensions: http://bugs.php.net/fix.php?id=35142r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=35142r=mysqlcfg
#35142 [Opn]: SOAP Client/Server Complex Object Support
ID: 35142 User updated by: matt dot jones at plumgroup dot com Reported By: matt dot jones at plumgroup dot com Status: Open -Bug Type: Feature/Change Request +Bug Type: SOAP related Operating System: * PHP Version: 5.0.5 New Comment: Moved to the SOAP related category Previous Comments: [2005-11-07 18:47:26] matt dot jones at plumgroup dot com 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 this bug report at http://bugs.php.net/?id=35142edit=1
#35142 [Fbk-Opn]: SOAP Client/Server Complex Object Support
ID: 35142 User updated by: matt dot jones at plumgroup dot com Reported By: matt dot jones at plumgroup dot com -Status: Feedback +Status: Open Bug Type: SOAP related Operating System: * PHP Version: 5.0.5 New Comment: I have tested this with php5-win32-latest.zip (it was easier than recompiling for linux) and I am seeing the exact same behavior. Providing an array of objects is not interpreted properly and having more than one subtag object results in the first tag to appear in the WSDL being the only response. Previous Comments: [2005-11-07 21:39:17] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip [2005-11-07 18:47:26] matt dot jones at plumgroup dot com 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 this bug report at http://bugs.php.net/?id=35142edit=1