Skip to content
Maxim Chshanovskiy edited this page Jun 19, 2015 · 1 revision

Для того, чтобы инстанциировать клиент, достаточно в конструктор передать ссылку на WSDL:

$client = new \ITMH\Soap\Client('http://www.webservicex.net/StockQuote.asmx?WSDL');

Если требуется указать логин и пароль, это можно сделать, передав в конструктор вторым параметром массив опций:

$client = new \ITMH\Soap\Client(
  'http://www.webservicex.net/StockQuote.asmx?WSDL',
  [
    'login' => 'foo',
    'password' => 'bar'
  ]
);

(Остальные опции можно посмотреть в официальной документации)

По умолчанию результат запроса возвращается как экземпляр \stdClass. Чтобы получить обычный массив, можно трансформировать результат методом asArray:

$client = new \ITMH\Soap\Client('http://www.webservicex.net/StockQuote.asmx?WSDL');
$result = $client->GetQuote(['symbol' => 'USD']); // instaceof stdClass
print_r($client->asArray($result));

Также, результат можно трансформировать в экземпляр произвольного класса, используя метод asClass:

$client = new \ITMH\Soap\Client('http://www.webservicex.net/StockQuote.asmx?WSDL');
$result = $client->GetQuote(['symbol' => 'USD']); // instaceof stdClass
$model = $client->asClass($result, ['nodeName' => 'className']); // instanceof className
Clone this wiki locally