title: classmap option not working while using php's SoapClient
body: <p>Currently I am working on an internal soap service to control some internal processes. Which is normally not all that hard to do. I am however trying to use the soapClient classmap functionality to map objects instead of working with the stdClasses which are normally returned for non complextypes.</p>
  
  <p>Considering the fact that wsdl's and sources take up alot of space code-wise, i will link to relevant documents instead of spamming them in this question.</p>
  
  <p>First of all I am using Zend_Soap_Server and Zend_Soap_Server_Autodiscover for my Soap service  and wsdl generation. </p>
  
  <p>Soap server code: 
  <a href="https://www.dropbox.com/s/eji7l50g42m2ixl/SoapServer.txt" rel="nofollow">https://www.dropbox.com/s/eji7l50g42m2ixl/SoapServer.txt</a></p>
  
  <p>WSDL result for ?wsdl request: 
  <a href="https://www.dropbox.com/s/vyxbjz7wogd8suy/wsdl.txt" rel="nofollow">https://www.dropbox.com/s/vyxbjz7wogd8suy/wsdl.txt</a></p>
  
  <p>The soap service publishes a serviceclass. This class contains a method to obtain data from our soap service. This method is called getPackages. </p>
  
  <p>getPackages method form the soap service: 
  <a href="https://www.dropbox.com/s/p5ddxpraju7ru6x/method_from_serviceclass.txt" rel="nofollow">https://www.dropbox.com/s/p5ddxpraju7ru6x/method_from_serviceclass.txt</a></p>
  
  <p>The getPackages method returns a DataObject which in turn returns contains references to other data objects. These objects exist on both server as client and are exactly the same on both ends.</p>
  
  <p>The main data object:
  <a href="https://www.dropbox.com/s/qt51pw3rpq7c2ba/dataobject.txt" rel="nofollow">https://www.dropbox.com/s/qt51pw3rpq7c2ba/dataobject.txt</a></p>
  
  <p>When connecting to this service and calling the getPackages method, I get the response as expected: a stdClass containing a vps and a shared property.</p>
  
  <p>Unfortionatly when adding the classmap, the result remains exactly the same.. a stdClass containing vps and a shared property. The expected result would be a Soho_Soap_DataObject_Packages object containing the vps and shared properties.</p>
  
  <p>This is the used SoapClient code: 
  <a href="https://www.dropbox.com/s/ulnni84p8dawv97/SoapClient.txt" rel="nofollow">https://www.dropbox.com/s/ulnni84p8dawv97/SoapClient.txt</a></p>
  
  <p>When i call the getPackages method through Soap i get the following:</p>
  
  <pre><code>$SoapClient = \Soho_Soap_Client::getInstance();
  $packages = $SoapClient-&gt;getPackages();
  print_r($packages);
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>stdClass Object
  (
  [shared] =&gt; Array
      (
          [0] =&gt; stdClass Object
              (
                  [id] =&gt; 
                  [title] =&gt; 
                  [pricePerPeriod] =&gt; 
                  [price] =&gt; 
                  [minRegistrationMonths] =&gt; 
                  [properties] =&gt; 
                  [options] =&gt; Array
                      (
                      )
              )
      )
  [vps] =&gt; 
  </code></pre>
  
  <p>)</p>
  
  <p>However, if I look at the response types I get the following:</p>
  
  <pre><code>print_r( $SoapClient-&gt;__getTypes() );
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>    Array
      (
      [0] =&gt; Soho_Soap_DataObject_Package_Shared ArrayOfSoho_Soap_DataObject_Package_Shared[]
      [1] =&gt; struct stdClass {
  
      }
      [2] =&gt; Soho_Soap_DataObject_Package_Shared_Option ArrayOfSoho_Soap_DataObject_Package_Shared_Option[]
      [3] =&gt; struct Soho_Soap_DataObject_Package_Shared_Option {
          string title;
          string value;
      }
      [4] =&gt; struct Soho_Soap_DataObject_Package_Shared {
          int id;
          string title;
          int pricePerPeriod;
          int price;
          int minRegistrationMonths;
          stdClass properties;
          ArrayOfSoho_Soap_DataObject_Package_Shared_Option options;
      }
      [5] =&gt; Soho_Soap_DataObject_Package_Vps ArrayOfSoho_Soap_DataObject_Package_Vps[]
      [6] =&gt; Soho_Soap_DataObject_Package_Vps_Option ArrayOfSoho_Soap_DataObject_Package_Vps_Option[]
      [7] =&gt; struct Soho_Soap_DataObject_Package_Vps_Option {
          string title;
          string value;
      }
      [8] =&gt; struct Soho_Soap_DataObject_Package_Vps {
          int id;
          string title;
          int pricePerPeriod;
          int price;
          int minRegistrationMonths;
          stdClass properties;
          ArrayOfSoho_Soap_DataObject_Package_Vps_Option options;
      }
      [9] =&gt; struct Soho_Soap_DataObject_Packages {
          ArrayOfSoho_Soap_DataObject_Package_Shared shared;
          ArrayOfSoho_Soap_DataObject_Package_Vps vps;
      }
      )        
  </code></pre>
  
  <p>Google isn't helping me much since the classmapping documentiation isn't all too great to start with, so I hope the stack community can shine a light on my problem.</p>
  
  <p>2 days of staring at the same problem makes me desperate.</p>
  
  <p>A short while ago I used SoapClient in the same way to communicate with a vmware vsphere API which worked perfectly, so I do think the problem has something to do with the WDSL, but currently I am lost.</p>
  
  <p>I thank everyone that takes the time to look at my problem in advance for their time. I will ofcourse provide additional information when requested.</p>