Рассмотрим пример, как использовать SOAP в PHP. Использование SOAP в PHP может показаться трудным, и неудобным, однако немного разобравшись, вы сразу же поймете что это не так. Если у вас возникла необходимость воспользоваться протоколом SOAP, то данный пример вам будет в помощь.
Перед использованием классов SOAP библиотека должна быть предварительно подключена в PHP. Как установить PHP Soap на сервер CentOS Linux ранее уже был пост об этом. Приступим непосредственно к примеру.
В нашем примере есть некий удаленный сервер SOAP, к которому мы будем обращаться с нашего PHP — скрипта. Нам необходимо заполучить какие-либо данные, со стороны сервера SOAP. Традиционно SOAP предназначался для реализации RPC (удаленный вызов процедур). Это говорит о том, что чтобы получить какие-то данные, на другой стороне мы будем иметь дело с чем-то вроде функции, к которой будем обращаться по имени, отправляя предустановленные параметры. В качестве успешного выполнения мы будем получать данные в виде объекта. С объектами мы так же можем привычно работать в PHP, что весьма удобно.
<? // проверяем наличие класса 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 сервером. В действительности объемы отправляемых параметром, и принимаемых данных может быть значительно больше, но это уже дело архитектурной сложности системы, и у каждого она своя.