mirror of
https://github.com/php/doc-ru.git
synced 2025-08-20 23:31:15 +00:00
777 lines
36 KiB
XML
777 lines
36 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 497c40ac164d5873fd87f622dfdeb5206392b446 Maintainer: sergey Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<refentry xml:id="soapclient.construct" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
<refnamediv>
|
||
<refname>SoapClient::__construct</refname>
|
||
<refpurpose>Конструктор класса SoapClient</refpurpose>
|
||
</refnamediv>
|
||
|
||
<refsect1 role="description">
|
||
&reftitle.description;
|
||
<constructorsynopsis role="SoapClient">
|
||
<modifier>public</modifier> <methodname>SoapClient::__construct</methodname>
|
||
<methodparam><type class="union"><type>string</type><type>null</type></type><parameter>wsdl</parameter></methodparam>
|
||
<methodparam choice="opt"><type>array</type><parameter>options</parameter><initializer>[]</initializer></methodparam>
|
||
</constructorsynopsis>
|
||
<para>
|
||
Создаёт объект <classname>SoapClient</classname> для подключения к службе SOAP.
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="parameters">
|
||
&reftitle.parameters;
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><parameter>wsdl</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
URI WSDL-файла, описывающего сервис, который используется для автоматической настройки клиента.
|
||
Если он не указан, клиент будет работать в режиме без WSDL.
|
||
mode.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
По умолчанию WSDL-файл будет кешироваться для повышения производительности.
|
||
Чтобы отключить или настроить кеширование, смотрите раздел
|
||
<link linkend="soap.configuration.list">&ConfigureOptions; SOAP</link>
|
||
и <link linkend="soapclient.construct.options.cache-wsdl">параметр <literal>cache_wsdl</literal></link>.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>options</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Ассоциативный массив, определяющий дополнительные параметры для клиента SOAP.
|
||
Если указан параметр <parameter>wsdl</parameter>, это необязательно, в противном случае,
|
||
по крайней мере параметры <literal>location</literal> и <literal>url</literal> должны быть указаны.
|
||
<variablelist>
|
||
<varlistentry xml:id="soapclient.construct.options.location">
|
||
<term>
|
||
<parameter>location</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
URL-адрес сервера SOAP для отправки запроса.
|
||
</para>
|
||
<para>
|
||
Обязателен, если параметр <parameter>wsdl</parameter> не указан.
|
||
Если предоставлены и параметр <parameter>wsdl</parameter> и
|
||
<literal>location</literal>, параметр <literal>location</literal>
|
||
будет приоритетнее расположения, указанного в WSDL-файле.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.uri">
|
||
<term>
|
||
<parameter>uri</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Целевое пространство имён службы SOAP.
|
||
</para>
|
||
<para>
|
||
Обязателен, если параметр <parameter>wsdl</parameter> не указан;
|
||
в противном случае игнорируется.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.style">
|
||
<term>
|
||
<parameter>style</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Определяет стиль связывания, который будет использоваться клиентом, используя константы
|
||
<constant>SOAP_RPC</constant> и <constant>SOAP_DOCUMENT</constant>.
|
||
Константа <constant>SOAP_RPC</constant> указывает на привязку в стиле RPC, где
|
||
тело запроса SOAP содержит стандартное кодирование вызова функции.
|
||
Константа <constant>SOAP_DOCUMENT</constant> указывает на привязку в стиле документа,
|
||
где тело запроса SOAP содержит XML-документ с определённым службой значением.
|
||
</para>
|
||
<para>
|
||
Если указан параметр <parameter>wsdl</parameter>,
|
||
то этот параметр игнорируется, а стиль считывается из WSDL-файла.
|
||
</para>
|
||
<para>
|
||
Если ни этот параметр, ни параметр <parameter>wsdl</parameter>
|
||
не указан, используется RPC-стиль.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.use">
|
||
<term>
|
||
<parameter>use</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Определяет стиль кодировки, который будет использоваться клиентом, используя константы
|
||
<constant>SOAP_ENCODED</constant> или <constant>SOAP_LITERAL</constant>.
|
||
Константа <constant>SOAP_ENCODED</constant> указывает на кодирование с использованием типов
|
||
определённых в спецификации SOAP.
|
||
Константа <constant>SOAP_LITERAL</constant> указывает на кодирование с использованием схемы
|
||
определённой службой.
|
||
</para>
|
||
<para>
|
||
Если указан параметр <parameter>wsdl</parameter>, этот
|
||
параметр игнорируется, а кодировка считывается из файла WSDL.
|
||
</para>
|
||
<para>
|
||
Если ни этот параметр, ни параметр <parameter>wsdl</parameter>
|
||
не указаны, используется стиль "encoded".
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.soap-version">
|
||
<term>
|
||
<parameter>soap_version</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Определяет версию протокола SOAP:
|
||
Константа <constant>SOAP_1_1</constant> для SOAP 1.1,
|
||
или <constant>SOAP_1_2</constant> для SOAP 1.2.
|
||
</para>
|
||
<para>
|
||
Если опущено, используется SOAP 1.1.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.authentication">
|
||
<term>
|
||
<parameter>authentication</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Указывает метод аутентификации при использовании HTTP-аутентификации
|
||
в запросах. Значение может быть либо <constant>SOAP_AUTHENTICATION_BASIC</constant>,
|
||
либо <constant>SOAP_AUTHENTICATION_DIGEST</constant>.
|
||
</para>
|
||
<para>
|
||
Если параметр не указан, но указан параметр <literal>login</literal>,
|
||
используется Basic Authentication.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.login">
|
||
<term>
|
||
<parameter>login</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Имя пользователя для использования при аутентификации HTTP Basic или Digest.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.password">
|
||
<term>
|
||
<parameter>password</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Пароль для использования при аутентификации HTTP Basic или Digest.
|
||
</para>
|
||
<para>
|
||
Не следует путать с параметром <literal>passphrase</literal>,
|
||
который используется при аутентификации сертификата клиента HTTPS.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.local-cert">
|
||
<term>
|
||
<parameter>local_cert</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Путь к клиентскому сертификату для использования с аутентификацией HTTPS.
|
||
Должен быть файл в кодировке <acronym>PEM</acronym>, содержащий сертификат и закрытый ключ.
|
||
</para>
|
||
<para>
|
||
Файл также может включать цепочку эмитентов, которая должна идти
|
||
после сертификата клиента.
|
||
</para>
|
||
<para>
|
||
Также может быть задан с помощью параметра
|
||
<link linkend="soapclient.construct.options.stream-context"><parameter>stream_context</parameter></link>,
|
||
который также поддерживает указание отдельного файла закрытого ключа.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.passphrase">
|
||
<term>
|
||
<parameter>passphrase</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Ключевая фраза для клиентского сертификата, указанного в параметре
|
||
<literal>local_cert</literal>.
|
||
</para>
|
||
<para>
|
||
Не следует путать с параметром <literal>password</literal>,
|
||
который используется для аутентификации Basic или Digest.
|
||
</para>
|
||
<para>
|
||
Можно также установить с помощью параметра
|
||
<link linkend="soapclient.construct.options.stream-context"><parameter>stream_context</parameter></link>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.proxy-host">
|
||
<term>
|
||
<parameter>proxy_host</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Имя хоста для использования в качестве прокси-сервера для HTTP-запросов.
|
||
</para>
|
||
<para>
|
||
Также должен быть указан параметр <literal>proxy_port</literal>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.proxy-port">
|
||
<term>
|
||
<parameter>proxy_port</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
TCP-порт для использования при подключении к прокси-серверу,
|
||
указанному в параметре <literal>proxy_host</literal>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.proxy-login">
|
||
<term>
|
||
<parameter>proxy_login</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Необязательное имя пользователя для аутентификации на прокси-сервере,
|
||
указанном в параметре <literal>proxy_host</literal>, используя HTTP
|
||
Basic Authentication.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.proxy-password">
|
||
<term>
|
||
<parameter>proxy_password</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Необязательный пароль для аутентификации на прокси-сервере,
|
||
указанном в параметре <literal>proxy_host</literal>, используя HTTP
|
||
Basic Authentication.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.compression">
|
||
<term>
|
||
<parameter>compression</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Включает сжатие HTTP SOAP запросов и ответов.
|
||
</para>
|
||
<para>
|
||
Значение должно быть побитовым ИЛИ из трёх частей:
|
||
необязательная <constant>SOAP_COMPRESSION_ACCEPT</constant>,
|
||
для отправки заголовка "Accept-Encoding";
|
||
либо константа <constant>SOAP_COMPRESSION_GZIP</constant>
|
||
или <constant>SOAP_COMPRESSION_DEFLATE</constant> для указания
|
||
используемого алгоритма сжатия;
|
||
число от 1 до 9, чтобы указать уровень сжатия, который будет использоваться в запросе.
|
||
Например, чтобы включить двустороннее сжатие gzip с максимальным
|
||
уровнем сжатия, используйте
|
||
<literal>SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 9</literal>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.encoding">
|
||
<term>
|
||
<parameter>encoding</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Определяет внутреннюю кодировку символов. Запросы всегда отправляются
|
||
в UTF-8 и преобразуются в эту кодировку и обратно.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.trace">
|
||
<term>
|
||
<parameter>trace</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Захватывает информацию о запросе и ответе, которая затем может быть доступна с помощью методов:
|
||
<methodname>SoapClient::__getLastRequest</methodname>,
|
||
<methodname>SoapClient::__getLastRequestHeaders</methodname>,
|
||
<methodname>SoapClient::__getLastResponse</methodname>
|
||
и <methodname>SoapClient::__getLastResponseHeaders</methodname>.
|
||
</para>
|
||
<para>
|
||
Если опущено, по умолчанию используется значение &false;.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.classmap">
|
||
<term>
|
||
<parameter>classmap</parameter>
|
||
<type>array</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Используется для сопоставления типов, определённых в WSDL с классами PHP.
|
||
Должен быть указан ассоциативный массив (<type>array</type>) с
|
||
именами типов из WSDL в качестве ключей и именами классов PHP в качестве значений.
|
||
Обратите внимание, что имя типа элемента не обязательно совпадает с именем элемента (тега).
|
||
</para>
|
||
<para>
|
||
Предоставляемые имена классов всегда должны быть полностью определены с помощью любых
|
||
<link linkend="language.namespaces">пространств имён</link> и никогда не должны
|
||
начинаться с ведущего слеша (<literal>\</literal>).
|
||
Правильная форма может быть указана с помощью
|
||
<link linkend="language.oop5.basic.class.class">::class</link>.
|
||
</para>
|
||
<para>
|
||
Обратите внимание, что при создании класса конструктор вызываться не будет,
|
||
но магические методы <link linkend="object.set">__set()</link> и
|
||
<link linkend="object.get">__get()</link> будут вызываться
|
||
для отдельных свойств.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.typemap">
|
||
<term>
|
||
<parameter>typemap</parameter>
|
||
<type>array</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Используется для определения сопоставлений типов с помощью определяемых
|
||
пользователем callback-функций.
|
||
Каждое сопоставление типов должно представлять собой массив с ключами
|
||
<literal>type_name</literal> (строка (<type>string</type>), определяющая тип элемента XML);
|
||
<literal>type_ns</literal> (строка (<type>string</type>), содержащая пространство имён URI);
|
||
<literal>from_xml</literal> (<type>callable</type>, принимающий один строковый параметр и возвращающий объект) и
|
||
<literal>to_xml</literal> (<type>callable</type>, принимающий один объектный параметр и возвращающий строку).
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.exceptions">
|
||
<term>
|
||
<parameter>exceptions</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Определяет, будут ли ошибки выбрасывать исключение типа
|
||
<classname>SoapFault</classname>.
|
||
</para>
|
||
<para>
|
||
По умолчанию значение &true;
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.connection-timeout">
|
||
<term>
|
||
<parameter>connection_timeout</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Определяет время ожидания в секундах для соединения с сервисом SOAP.
|
||
Параметр не определяет время ожидания служб с медленными ответами.
|
||
Чтобы ограничить время ожидания завершения вызовов, можно использовать параметр
|
||
конфигурации <link linkend="ini.default-socket-timeout">default_socket_timeout</link>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.cache-wsdl">
|
||
<term>
|
||
<parameter>cache_wsdl</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Если указан параметр <parameter>wsdl</parameter>, а также параметр
|
||
<link linkend="ini.soap.wsdl-cache-enabled">soap.wsdl_cache_enabled</link>
|
||
включён, этот параметр определяет тип кеширования.
|
||
Одно из значений: <constant>WSDL_CACHE_NONE</constant>,
|
||
<constant>WSDL_CACHE_DISK</constant>,
|
||
<constant>WSDL_CACHE_MEMORY</constant> или
|
||
<constant>WSDL_CACHE_BOTH</constant>.
|
||
</para>
|
||
<para>
|
||
Доступны два типа кеша: кеширование в памяти, которое кеширует WSDL в памяти текущего процесса
|
||
и дисковое кеширование, которое кеширует WSDL в файле на диске, разделяемом между всеми процессами.
|
||
Каталог, который будет использоваться для дискового кеша, определяется параметром
|
||
<link linkend="ini.soap.wsdl-cache-dir">soap.wsdl_cache_dir</link>.
|
||
Оба кеша используют одинаковое время жизни, определяемое параметром
|
||
<link linkend="ini.soap.wsdl-cache-ttl">soap.wsdl_cache_ttl</link>.
|
||
У кеша в памяти также есть максимальное количество записей, определяемое параметром
|
||
<link linkend="ini.soap.wsdl-cache-limit">soap.wsdl_cache_limit</link>.
|
||
</para>
|
||
<para>
|
||
Если не указано, будет использоваться параметр конфигурации
|
||
<link linkend="ini.soap.wsdl-cache">soap.wsdl_cache</link>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.user-agent">
|
||
<term>
|
||
<parameter>user_agent</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Значение для использования в HTTP-заголовке <literal>User-Agent</literal>
|
||
при выполнении запросов.
|
||
</para>
|
||
<para>
|
||
Можно также установить с помощью параметра
|
||
<link linkend="soapclient.construct.options.stream-context"><parameter>stream_context</parameter></link>.
|
||
</para>
|
||
<para>
|
||
Если не указано, User-Agent будет <literal>"PHP-SOAP/"</literal>
|
||
за которым следует значение <constant>PHP_VERSION</constant>.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.stream-context">
|
||
<term>
|
||
<parameter>stream_context</parameter>
|
||
<type>resource</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Контекст <link linkend="context">stream context</link>, созданный с помощью
|
||
функции <function>stream_context_create</function>, которая позволяет установить дополнительные
|
||
параметры.
|
||
</para>
|
||
<para>
|
||
Контекст может включать <link linkend="context.socket">параметры контекста сокета</link>,
|
||
<link linkend="context.ssl">параметры контекста SSL</link>,
|
||
а также выбранные <link linkend="context.http">опции контекста HTTP</link>:
|
||
<literal>content_type</literal>, <literal>header</literal>,
|
||
<literal>max_redirects</literal>, <literal>protocol_version</literal>,
|
||
и <literal>user_agent</literal>.
|
||
</para>
|
||
<para>
|
||
Обратите внимание, что следующие HTTP-заголовки генерируются автоматически или на основе других
|
||
параметров и будут игнорироваться, если указаны в параметре контекста <literal>'header'</literal>:
|
||
<literal>host</literal>, <literal>connection</literal>,
|
||
<literal>user-agent</literal>, <literal>content-length</literal>,
|
||
<literal>content-type</literal>, <literal>cookie</literal>,
|
||
<literal>authorization</literal> и <literal>proxy-authorization</literal>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.features">
|
||
<term>
|
||
<parameter>features</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Битовая маска для включения одной или нескольких следующих функций:
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term>
|
||
<constant>SOAP_SINGLE_ELEMENT_ARRAYS</constant>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
При декодировании ответа в массив по умолчанию определяется,
|
||
появляется ли имя элемента один или несколько раз в определённом родительском элементе.
|
||
Для элементов, которые появляются только один раз,
|
||
свойство объекта позволяет получить прямой доступ к содержимому;
|
||
для элементов, которые появляются более одного раза,
|
||
свойство содержит массив с содержимым каждого соответствующего элемента.
|
||
</para>
|
||
<para>
|
||
Если включена функция <constant>SOAP_SINGLE_ELEMENT_ARRAYS</constant>,
|
||
элементы, которые появляются только один раз, помещаются в одноэлементный массив,
|
||
чтобы доступ был последовательным для всех элементов.
|
||
Это будет работать только при использовании WSDL, содержащего схему для ответа.
|
||
Для демонстрации смотрите раздел с примерами.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<constant>SOAP_USE_XSI_ARRAY_TYPE</constant>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Если <link linkend="soapclient.construct.options.use">параметру <literal>use</literal></link> или свойству WSDL
|
||
передано значение <literal>encoded</literal>, массивы принудительно используют тип
|
||
<literal>SOAP-ENC:Array</literal>, а не специфический для схемы.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term>
|
||
<constant>SOAP_WAIT_ONE_WAY_CALLS</constant>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Ожидание ответа, даже если WSDL указывает на односторонний запрос.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.keep-alive">
|
||
<term>
|
||
<parameter>keep_alive</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Логическое значение, определяющее, следует ли
|
||
отправлять заголовок <literal>Connection: Keep-Alive</literal> или
|
||
<literal>Connection: close</literal>.
|
||
</para>
|
||
<para>
|
||
По умолчанию &true;
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="soapclient.construct.options.ssl-method">
|
||
<term>
|
||
<parameter>ssl_method</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Определяет версию протокола SSL или TLS для использования в защищённых
|
||
HTTP-соединениях вместо согласования по умолчанию.
|
||
Указание <constant>SOAP_SSL_METHOD_SSLv2</constant> или <constant>SOAP_SSL_METHOD_SSLv3</constant>
|
||
заставит использовать SSL 2 или SSL 3, соответственно.
|
||
Указание константы <constant>SOAP_SSL_METHOD_SSLv23</constant> не имеет никакого смысла;
|
||
константа существует только для обратной совместимости.
|
||
Начиная с PHP 7.2, указание константы <constant>SOAP_SSL_METHOD_TLS</constant>
|
||
также не имеет никакого смысла; в более ранних версиях константа
|
||
определяла принудительное использование TLS 1.0.
|
||
</para>
|
||
<para>
|
||
Обратите внимание, что SSL версий 2 и 3 считаются небезопасными и могут не
|
||
поддерживаться установленной библиотекой OpenSSL.
|
||
</para>
|
||
<para>
|
||
Параметр объявлен <emphasis>УСТАРЕВШИМ</emphasis>, начиная с PHP 8.1.0.
|
||
Более гибкой альтернативой, позволяющей указывать
|
||
отдельные версии TLS, можно использовать параметр
|
||
<link linkend="soapclient.construct.options.stream-context"><parameter>stream_context</parameter></link>
|
||
с параметром контекста 'crypto_method'.
|
||
<example>
|
||
<title>Указание использования только TLS 1.3</title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
$context = stream_context_create([
|
||
'ssl' => [
|
||
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT
|
||
]
|
||
]);
|
||
$client = new SoapClient("some.wsdl", ['context' => $context]);
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="errors">
|
||
&reftitle.errors;
|
||
<para>
|
||
Метод <methodname>SoapClient::__construct</methodname> выводит ошибку уровня
|
||
<constant>E_ERROR</constant>, если параметры <literal>location</literal> и
|
||
<literal>uri</literal> не указаны в режиме не-WSDL.
|
||
</para>
|
||
<para>
|
||
Выбрасывается исключение <classname>SoapFault</classname>, если
|
||
параметр <parameter>wsdl</parameter> URI не может быть загружен.
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="examples">
|
||
&reftitle.examples;
|
||
<para>
|
||
<example>
|
||
<title>Пример использования <methodname>SoapClient::__construct</methodname></title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?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 | 9));
|
||
|
||
$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")));
|
||
|
||
$typemap = array(
|
||
array("type_ns" => "http://schemas.example.com",
|
||
"type_name" => "book",
|
||
"from_xml" => "unserialize_book",
|
||
"to_xml" => "serialize_book")
|
||
);
|
||
$client = new SoapClient("books.wsdl", array('typemap' => $typemap));
|
||
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
|
||
<para>
|
||
<example>
|
||
<title>Пример использования <constant>SOAP_SINGLE_ELEMENT_ARRAYS</constant></title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
/* Предполагая, что ответ, подобный этому, и соответствующий WSDL:
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:example">
|
||
<SOAP-ENV:Body>
|
||
<response>
|
||
<collection>
|
||
<item>Single</item>
|
||
</collection>
|
||
<collection>
|
||
<item>First</item>
|
||
<item>Second</item>
|
||
</collection>
|
||
</response>
|
||
</SOAP-ENV:Body>
|
||
</SOAP-ENV:Envelope>
|
||
*/
|
||
|
||
echo "По умолчанию:\n";
|
||
|
||
$client = new TestSoapClient(__DIR__ . '/temp.wsdl');
|
||
$response = $client->exampleRequest();
|
||
var_dump( $response->collection[0]->item );
|
||
var_dump( $response->collection[1]->item );
|
||
|
||
echo "\nС помощью SOAP_SINGLE_ELEMENT_ARRAYS:\n";
|
||
|
||
$client = new TestSoapClient(__DIR__ . '/temp.wsdl', ['features' => SOAP_SINGLE_ELEMENT_ARRAYS]);
|
||
$response = $client->exampleRequest();
|
||
var_dump( $response->collection[0]->item );
|
||
var_dump( $response->collection[1]->item );
|
||
]]>
|
||
</programlisting>
|
||
|
||
&example.outputs;
|
||
|
||
<screen>
|
||
<![CDATA[
|
||
По умолчанию:
|
||
string(6) "Single"
|
||
array(2) {
|
||
[0] =>
|
||
string(5) "First"
|
||
[1] =>
|
||
string(6) "Second"
|
||
}
|
||
|
||
С помощью SOAP_SINGLE_ELEMENT_ARRAYS:
|
||
array(1) {
|
||
[0] =>
|
||
string(6) "Single"
|
||
}
|
||
array(2) {
|
||
[0] =>
|
||
string(5) "First"
|
||
[1] =>
|
||
string(6) "Second"
|
||
}
|
||
]]>
|
||
</screen>
|
||
</example>
|
||
</para>
|
||
</refsect1>
|
||
|
||
</refentry>
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|