УЦ Контакт

Лидер IT образования

Как приятно знать, что ты что-то узнал (Мольер)

 
03056, Киев, пер. Ковальский 13, 1-й этаж, офис №2
 
Программы курсов

Акция! Студентам - Скидка 15%! Слушателям IT Academy бесплатное посещение English Club

Статья>>Kурсы php - использование веб сервисов

Курсы пользователя персонального компьютера – первый шаг в компьютерной грамотности обучающегося на них.

Чтобы использовать SOAP в php нужно подключить сночала модуль SOAP ,кторый входит в дистрибутив php5. Под windows это выполняется просто – просто нужно дописать в php.ini (именно дописать, потому что эта строка там не просто закомментирована, ее нету там вообще) :
    extension=php_soap.dll

  И не забывайте перезапустить сервер, в случае если php у вас установлен в качестве модуля.

Курсы программирования веб. Изучаем Создание SOAP-клиента по WSDL-документу

Создание  SOAP-клиента обычно происходит по WSDL-документу, который представляет собой XML-документ в определенном формате, полностью описывающий тот или иной веб-сервис. За подробностями по поводу WSDL – отправляю Вас на сайт консорциума W3C. Главное же, что необходимо знать для того, чтобы построить клиента к веб-сервису – это знать URL его WSDL-документа.
Для примера возьмем веб-сервис "Currency Exchange Rate" от xmethods.com. Адрес этого веб-сервиса, который позволяет получать курсы валют в режиме онлайн.

Второй важный момент – из описания веб-сервиса необходимо получить информацию о том, какие методы этот сервис предоставляет, и какие параметры мы должны передавать ему в качестве входных значений (очень похоже на вызов обычной функции php или метода класса). Обычно эта информация содержится в описании сервиса на его сайте. Наш веб-сервис для получения курса валют предоставляет метод getRate(), которому в качестве аргументов передаются коды валют. 

Курсы программирования веб. Изучаем пример кода php

И последнее – важно знать, что ожидать в качестве ответа: сколько значений, какого типа и т.п. Это также можно получить из описания.
А в результате код получается очень простым и компактным, почти элементарным:

<?php
     // Использование Web-сервиса
     // "Currency Exchange Rate" от xmethods.com
     // Создание SOAP-клиента по WSDL-документу
     $client = new SoapClient("http://www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl");
 
     // Поcылка SOAP-запроса и получение результата
     $result = $client->getRate("us", "russia");
 
     echo ‘Текущий курс доллара: ’, $result, ‘ рублей’;
?>
Как видно из кода в конструктор класса SoapClient необходимо передать URL WSDL-документа и получить объект для работы с нужным веб-сервисом. Затем вызывается метод этого объекта, имя которого совпадает с именем самого метода веб-сервиса. Возвращает же этот метод желаемый нами результат.

Итак, этот простой пример иллюстрирует нам принцип построения SOAP-клиента для веб-сервисов на php. Однако в реальном приложении еще о многом придется позаботиться, в частности о том, что в момент обращения к веб-сервису  он может быть временно недоступен или возвращать ошибку. Явно напрашивается использование блока try/catch/throw :)