SoapClient::SoapClient
(PHP 5, PHP 7)
SoapClient::SoapClient — Конструктор SoapClient
Описание
Конструктор создает объекты SoapClient
в режиме WSDL или не-WSDL.
Список параметров
-
wsdl -
URI файла
WSDLилиnull, если работа происходит в режимене-WSDL.Замечание:
Во время разработки кеширование WSDL можно отключить, используя настройку
soap.wsdl_cache_ttlв php.ini, иначе изменения, сделанные в WSDL файле, не будут иметь эффекта до тех пор, пока не истечет время, указанное вsoap.wsdl_cache_ttl. -
options -
Массив настроек. Если работа происходит в режиме WSDL, то этот параметр необязательный. Если в не-WSDL режиме, то должны быть установлены опции
locationиuri, гдеlocation- URL сервера SOAP, к которому отправляется запрос, аuri- целевое пространство имен SOAP-сервиса.Опции
styleиuseиспользуются только в не-WSDL режиме. В режиме WSDL они поступают из WSDL-файла.Опция
soap_versionдолжна быть равна либоSOAP_1_1, либоSOAP_1_2, чтобы использовать соответственно SOAP 1.1 или 1.2. Если параметр пропущен, то используется 1.1.Для HTTP-аутентификации могут быть использованы опции
loginиpasswordдля предоставления учетных данных. Для реализации HTTP-соединения через прокси-сервер доступны настройкиproxy_host,proxy_port,proxy_loginиproxy_password. Для аутентификации сертификата клиента HTTPS используются опцииlocal_certиpassphrase. Аутентификация может быть предоставлена в опцииauthentication. Метод аутентификации может бытьSOAP_AUTHENTICATION_BASIC(по умолчанию) илиSOAP_AUTHENTICATION_DIGEST.Опция
compressionпозволяет использовать сжатие запросов и ответов HTTP SOAP.Опция
encodingопределяет внутреннюю кодировку. Опция не меняет кодировку SOAP-запросов (она всегда utf-8), но преобразует строки в нее.Опция
traceвключает отслеживание запроса и в случае ошибки можно получить обратную трассировку. По умолчанию имеет значениеfalse.Опция
classmapможет использоваться для сопоставления некоторых WSDL-типов с PHP-классами. Опция должна представлять собой массив, в качестве ключей которого указаны WSDL-типы, а в качестве значений - имена классов PHP.Установленная булевая опция
traceпозволяет использовать следующие методы: SoapClient->__getLastRequest, SoapClient->__getLastRequestHeaders, SoapClient->__getLastResponse и SoapClient->__getLastResponseHeaders.Опция
exceptionsпринимает логическое значение, определяющее, будут ли SOAP-ошибки бросать исключения типа SoapFault.Опция
connection_timeoutопределяет тайм-аут в секундах для соединения с SOAP-сервисом. Опция не устанавливает тайм-аут для сервисов с медленными ответами. Для ограничения времени ожидания вызовов используется default_socket_timeout.Опция
typemapявляется массивом сопоставления типов. Массив сопоставления типов - это массив с ключамиtype_name,type_ns(URI пространства имен),from_xml(функция обратного вызова принимает один строковый параметр) иto_xml(функция обратного вызова принимает объект в качестве параметра).Опция
cache_wsdlпринимает одно из значений:WSDL_CACHE_NONE,WSDL_CACHE_DISK,WSDL_CACHE_MEMORYилиWSDL_CACHE_BOTH.Опция
user_agentопределяет строку для использования в заголовкеUser-Agent.Опция
stream_context- это resource для context.Опция
featuresявляется битовой маскойSOAP_SINGLE_ELEMENT_ARRAYS,SOAP_USE_XSI_ARRAY_TYPE,SOAP_WAIT_ONE_WAY_CALLS.Опция
keep_aliveявляется логическим значением, определяющим, какой заголовок отправлять:Connection: Keep-AliveилиConnection: close.Опция
ssl_methodдолжна быть равнойSOAP_SSL_METHOD_TLS,SOAP_SSL_METHOD_SSLv2,SOAP_SSL_METHOD_SSLv3илиSOAP_SSL_METHOD_SSLv23.
Ошибки
SoapClient::SoapClient() генерирует ошибку
E_ERROR, если опции location и
uri не передаются в не-WSDL режиме.
Исключение SoapFault будет выбрасываться, если
wsdl URI не может быть загружен.
Примеры
Пример #1 Пример использования SoapClient::SoapClient()
<?php
$client = new SoapClient("some.wsdl");
$client = new SoapClient("some.wsdl", array('soap_version' => SOAP_1_2));
$client = new SoapClient("some.wsdl", array('login' => "some_name",
'password' => "some_password"));
$client = new SoapClient("some.wsdl", array('proxy_host' => "localhost",
'proxy_port' => 8080));
$client = new SoapClient("some.wsdl", array('proxy_host' => "localhost",
'proxy_port' => 8080,
'proxy_login' => "some_name",
'proxy_password' => "some_password"));
$client = new SoapClient("some.wsdl", array('local_cert' => "cert_key.pem"));
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/",
'style' => SOAP_DOCUMENT,
'use' => SOAP_LITERAL));
$client = new SoapClient("some.wsdl",
array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));
$client = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));
class MyBook {
public $title;
public $author;
}
$client = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));
?>