Здравствуйте! Вопрос нестандартный сразу скажу, т.к. в после недели поисков в гугле и яндексе была найдена лишь одна статься и то, не раскрывающая полностью решение моей проблемы: http://stackoverflow.com/questions/13266890/classmap-option ... soapclient Если по-русски, то суть следующая: 1) Есть SOAP-сервер, есть WSDL, есть клиент 2) Клиент стучится на сервер запрашивая метод, который возвращает, допустим такой объект: Код (Text): class Peoples { /** * Массив объектов People */ public $list; } ... class People { public $Name; public $Phone; public $Info; } В структуру класса вдаваться не надо (он был придуман только что в качестве примера). Т.е. примерно такой или любой другой объект будет возвращать метод. Но SOAP клиент получая такой объект переиначивает его и возвращает как Код (Text): stdClass Object ( // а должно быть Peoples Object [list] => Array ( [0] => stdClass Object ( // а должно быть People Object [Name] => 'Какое-то имя' [Phone] => '888-888-888' [Info] => 'Какая-то информация' ) [1] => .. ) ) Я использую Zend Framework 1.11.11, в частности библиотеки Zend_Soap_Autodiscover для генерации WSDL, Zend_Soap_Server в качестве сервера и Zend_Soap_Client - в качестве клиента. Прочитал, что есть некий ClassMap (protected $_classmap, пару методов getClassMap(), setClassMap()) в классе Zend_Soap_Server, но они не используются. Может у кого-то получилось побороть SOAP чтобы он возвращал именно те объекты которые к нему приходят а не сборище stdClass-ов. Заранее спасибо!
Начнем с того, что SOAP возвращает xml, а не экземпляры объектов, это раз. xml демаршалиться в экземпляры безошибочно только в строго типизированых языках и в случае если может подчитать внешние классы, чтобы понять что вообще там такое, во всех остальных случаях неизбежны оговорки и костыли, поэтому даже и не пытайся переложить свою головную боль на php. "парси xml блеа". Или пиши клиента на том, что может демаршалиться автоматом и точно в нужную структуру.