Рассмотрим пример, как использовать SOAP в PHP. Использование SOAP в PHP может показаться трудным, и неудобным, однако немного разобравшись, вы сразу же поймете что это не так. Если у вас возникла необходимость воспользоваться протоколом SOAP, то данный пример вам будет в помощь.
Перед использованием классов SOAP библиотека должна быть предварительно подключена в PHP. Как установить PHP Soap на сервер CentOS Linux ранее уже был пост об этом. Приступим непосредственно к примеру.
В нашем примере есть некий удаленный сервер SOAP, к которому мы будем обращаться с нашего PHP — скрипта. Нам необходимо заполучить какие-либо данные, со стороны сервера SOAP. Традиционно SOAP предназначался для реализации RPC (удаленный вызов процедур). Это говорит о том, что чтобы получить какие-то данные, на другой стороне мы будем иметь дело с чем-то вроде функции, к которой будем обращаться по имени, отправляя предустановленные параметры. В качестве успешного выполнения мы будем получать данные в виде объекта. С объектами мы так же можем привычно работать в PHP, что весьма удобно.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <? // проверяем наличие класса SoapClient if ( class_exists ( 'SoapClient' )){ // отключаем кэширование ini_set ( "soap.wsdl_cache_enabled" , "0" ); // подключаемся к серверу $client = new SoapClient( "http://localhost/test/ws/ws1.1cws?wsdl" , array ( "soap_Login" , // логин "soap_password" // пароль ) ); // обращаемся к функции, передаем параметры $result = $client ->GetOrderInfo( array ( 'OrderCode' => '20001827' ) ); if ( $result -> return ){ // обращаемся к данным в виде объектов echo 'Product: ' . $result -> return ->cmp->ProdName . '<br>' . 'Amount' . $result -> return ->cmp->Amount . 'Price' . $result -> return ->cmp->Price; } else echo "Не удалось получить данные!" ; } else echo "Включите поддержку SOAP в PHP!" ; ?> |
Как видно из примера ничего космического. Сперва мы подключаемся к серверу, для этого при создании объекта класса SoapClient мы передаем три параметра: URL сервера, логин и пароль. Далее обращаемся к функции, в нашем случае она называется GetOrderInfo, именоваться она может как угодно, и принимать различные параметры. Находиться данная функция на стороне SOAP сервера. В примере мы передаем на сервер код, по которому нам должен вернуться объект с данными. Далее мы просто выводим эти данные. Этот пример прост, и он больше для демонстрации обмена данными между PHP-скриптом и SOAP сервером. В действительности объемы отправляемых параметром, и принимаемых данных может быть значительно больше, но это уже дело архитектурной сложности системы, и у каждого она своя.