Does PHP5's newfound SOAP functionality truly support complex types?
August 17, 2004 2:50 PM   Subscribe

Does PHP5's newfound SOAP functionality truly support complex types? [more inside]

While quite experienced with PHP, I'm fairly new to Object Orienteering and SOAP. During my trials in this magical world of magic and adventure, I've come to the conclusion that, while Zope claims to support complex types in PHP5, its support is not as full as one would hope.

Case in point: I'm using PHP to interact with a Win2K3/IIS webservice. The WSDL is valid, I can call any of the 20 functions available to me without incident, the returned XML is perfect, and the resulting objects are properly populated, with two exceptions, which look like:
stdClass Object
(
    [GetProjectResult] => stdClass Object
        (
            [returnData] => stdClass Object
                (
                    [templateSections] => stdClass Object
                        (
                            [TemplateSection] => stdClass Object
                                (
                                    [variables] => stdClass Object
                                        (
                                            [TemplateVariable] => 
                                        )
                                )
                        )
                    [childTemplates] => 
                    [childProjects] => 
                )
            [success] => 1
            [failureCode] => 0
            [failureReason] => 
            [failureLocalizedMessage] => 
        )
)
Based on the WSDL (which I would love to post, but security and confidentiality prevent me from doing so) the object's structure looks more or less correct, but every instance in which an array of objects is required is instead NULL. Both of these methods function properly when invoked from a C# .net environment. Flash MX 2004 seems to choke in exactly the same way, I've been told.

I found this documented PHP bug which sounds appropriate but refers only to SoapServer and has yet to be fixed. I considered implementing the code with PEAR::SOAP rather than PHP's internal functionality, but PEAR::SOAP refuses to install and throws an error merely upon being require()'d. (Bug; fix doesn't work.) nuSOAP seems like an overly-complicated solution, and my life would be made vastly easier if I could get PHP5's SOAP to function right out of the box .tar.gz.

The question: Is PHP5's SOAP support broken, or am I doing something wrong to result in half-populated objects?
posted by Danelope to Computers & Internet
 
« Older Is it ethical to break a deal with a car dealer?   |   Club Chairs Newer »
This thread is closed to new comments.