работа с SOAP в php

ПашаV

Новичок
Здравствуйте!

Вопрос нестандартный сразу скажу, т.к. в после недели поисков в гугле и яндексе была найдена лишь одна статься и то, не раскрывающая полностью решение моей проблемы:
http://stackoverflow.com/questions/13266890/classmap-option-not-working-while-using-phps-soapclient

Если по-русски, то суть следующая:
1) Есть SOAP-сервер, есть WSDL, есть клиент
2) Клиент стучится на сервер запрашивая метод, который возвращает, допустим такой объект:

PHP:
class Peoples {
/**
  * Массив объектов People
  */
public $list;
}

...
class People {
public $Name;
public $Phone;
public $Info;
}
В структуру класса вдаваться не надо (он был придуман только что в качестве примера).

Т.е. примерно такой или любой другой объект будет возвращать метод.

Но SOAP клиент получая такой объект переиначивает его и возвращает как

PHP:
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-ов.

Заранее спасибо!
 

MiksIr

miksir@home:~$
http://framework.zend.com/manual/1.11/ru/zend.soap.client.html
The following options are recognized:
  • 'classmap' ('classMap') - can be used to map some WSDL types to PHP classes.

    The option must be an array with WSDL types as keys and names of PHP classes as values.
Все как в SoapClient.

Прописывать обязательно, даже если одинаковые названия, т.е. [ 'Peoples' => 'Peoples' ]
Вот только не помню, как с вложенными объектами обстоят дела.
 
Сверху