SoapClient::__soapCall

(PHP 5, PHP 7)

SoapClient::__soapCallВызывает SOAP-функцию

Описание

public SoapClient::__soapCall ( string $name , array $args , array|null $options = null , SoapHeader|array|null $inputHeaders = null , array &$outputHeaders = null ) : mixed

Это низкоуровневая функция API, которая позволяет сделать SOAP-вызов. Обычно в режиме WSDL функции SOAP вызываются как методы объекта SoapClient. Этот метод полезен в режиме, отличном от WSDL, когда soapaction неизвестен, uri отличается от URI по умолчанию или при отправке и/или получении SOAP-заголовков.

В случае ошибки вызов SOAP-функции может привести к исключению или к возврату объекта SoapFault, если исключения отключены. Чтобы проверить, что вызов функции завершился неудачей, поймав исключение SoapFault, проверьте результат с помощью is_soap_fault().

Список параметров

name

Имя вызываемой SOAP-функции.

args

Массив аргументов, передаваемых в функцию. Это может быть упорядоченный или ассоциативный массив. Обратите внимание, что большинство SOAP-серверов требуют предоставлять имена параметров, и в этом случае это должен быть ассоциативный массив.

options

Ассоциативный массив настроек, передаваемых клиенту.

Настройка location - URL удаленной веб-службы.

Настройка uri - целевое пространство имен SOAP-службы.

Настройка soapaction - действие для вызова.

inputHeaders

Массив заголовков, отправляемых вместе с SOAP-запросом.

outputHeaders

Если указан, то этот массив будет заполнен заголовками из SOAP-ответа.

Возвращаемые значения

SOAP-функции могут возвращать одно или несколько значений. Если SOAP-функция возвращает только одно значение, то __soapCall вернет простое значение (например, целое число, строку и т.д.). Если возвращается несколько значений, то __soapCall вернет ассоциативный массив именованных возвращаемых параметров.

В случае ошибки, если объект SoapClient был создан с настройкой exceptions, установленной в false, будет возвращен объект SoapFault.

Примеры

Пример #1 Пример использования SoapClient::__soapCall()

<?php

$client 
= new SoapClient("some.wsdl");
$client->SomeFunction($a$b$c);

$client->__soapCall("SomeFunction", array($a$b$c));
$client->__soapCall("SomeFunction", array($a$b$c), NULL,
                    new 
SoapHeader(), $output_headers);


$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     
'uri'      => "http://test-uri/"));
$client->SomeFunction($a$b$c);
$client->__soapCall("SomeFunction", array($a$b$c));
$client->__soapCall("SomeFunction", array($a$b$c),
                    array(
'soapaction' => 'some_action',
                          
'uri'        => 'some_uri'));
?>

Смотрите также