ФорумПрограммированиеPHP для идиотов → работа c SOAP в PHP

работа c SOAP в PHP

  • pveselov

    Сообщения: 2 Репутация: N Группа: Кто попало

    Spritz Май 6, 2014, 6:41 п.п.

    Здравствуйте!

    Вопрос нестандартный сразу скажу, т.к. в после недели поисков в гугле и яндексе была найдена лишь одна статься и то, не раскрывающая полностью решение моей проблемы:
    Your text to link here...

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

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


    class People {
    public $Name;
    public $Phone;
    public $Info;
    }


    В структуру класса вдаваться не надо (он был придуман только что в качестве примера).

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

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

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

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

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz Май 6, 2014, 8:51 п.п., спустя 2 часа 10 минут 3 секунды

    Peoples

    пиздато
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Май 6, 2014, 8:52 п.п., спустя 46 секунд

    Peoples

    пиздато

    @master, читаю пыху ради таких каментов :-D

    Сапожник без сапог
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Май 6, 2014, 8:58 п.п., спустя 5 минут 42 секунды

    исходя из

    PHP: SoapServer::SoapServer - Manual [th1.php.net]

    The classmap option can be used to map some WSDL types to PHP classes. This option must be an array with WSDL types as keys and names of PHP classes as values.

    похоже что может такое делать, надо только биндинги прописать нужные и все.

    аля

    http://pookey.co.uk/wordpress/archives/78-using-the-classmap-with-soap-in-php

    хотя конечно все равно это сомнительное удовольствие а не код)

    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!