SoapClient::__construct

(PHP 5, PHP 7, PHP 8)

SoapClient::__construct - Конструктор класу SoapClient

Опис

public SoapClient::__construct(?string$wsdl, array$options []) .

Створює об'єкт SoapClientдля подключения к службе SOAP.

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

wsdl

URI WSDL-файлу, який описує сервіс, який використовується для автоматичного налаштування клієнта. Якщо він не вказаний, клієнт працюватиме в режимі без WSDL. mode.

Зауваження :

За промовчанням файл WSDL кешуватиметься для підвищення продуктивності. Щоб вимкнути або налаштувати кешування, див. розділ Опції налаштування SOAP та параметрcache_wsdl

options

Асоціативний масив, що визначає додаткові параметри клієнта SOAP. Якщо вказано параметр wsdl, це необов'язково, в іншому випадку, принаймні параметри locationиurl мають бути вказані.

locationstring

URL-адреса сервера SOAP для надсилання запиту.

Обязателен, если параметрwsdl не вказано. Якщо надано і параметр wsdlиlocation, параметрlocation буде пріоритетнішим за розташування, зазначене у WSDL-файлі.

uristring

Цільовий простір імен SOAP.

Обязателен, если параметрwsdl не вказано; інакше ігнорується.

styleint

Визначає стиль зв'язування, який використовуватиме клієнт, використовуючи константи SOAP_RPC і SOAP_DOCUMENTКонстантаSOAP_RPC вказує на прив'язку у стилі RPC, де тіло запиту SOAP містить стандартне кодування виклику функції. Константа SOAP_DOCUMENT вказує на прив'язку в стилі документа, де тіло запиту SOAP містить документ XML з певною службою значенням.

Если указан параметрwsdl, цей параметр ігнорується, а стиль зчитується з WSDL-файлу.

Якщо ні цей параметр, ні параметр wsdl не вказано, використовується стиль RPC.

useint

Визначає стиль кодування, який використовуватиметься клієнтом, використовуючи константи SOAP_ENCODED або SOAP_LITERALКонстантаSOAP_ENCODED вказує на кодування з використанням типів, визначених у специфікації SOAP. Константа SOAP_LITERAL вказує на кодування з використанням схеми певною службою.

Если указан параметрwsdl, цей параметр ігнорується, а кодування зчитується з файлу WSDL.

Якщо ні цей параметр, ні параметр wsdl не вказано, використовується стиль "encoded".

soap_versionint

Визначає версію протоколу SOAP: Константа **SOAP_1_1для SOAP 1.1, илиSOAP_1_2**для SOAP 1.2.

Якщо опущено, використовується SOAP 1.1.

authenticationint

Вказує метод аутентифікації під час використання HTTP-аутентифікації у запитах. Значення може бути або SOAP_AUTHENTICATION_BASIC, либо**SOAP_AUTHENTICATION_DIGEST**

Якщо параметр не вказано, але вказано параметр loginвикористовується Basic Authentication.

loginstring

Ім'я користувача для використання під час аутентифікації HTTP Basic або Digest.

passwordstring

Пароль для використання під час аутентифікації HTTP Basic або Digest.

Не слід плутати з параметром passphrase, який використовується для автентифікації сертифіката клієнта HTTPS.

local_certstring

Шлях до сертифіката клієнта для використання з автентифікацією HTTPS. Має бути файл у кодуванні PEM, що містить сертифікат і закритий ключ.

Файл також може включати ланцюжок емітентів, який повинен йти після сертифіката клієнта.

Також може бути задано за допомогою параметра stream_context, який також підтримує вказівку окремого файлу закритого ключа.

passphrasestring

Ключевая фраза для клиентского сертификата, указанного в параметреlocal_cert

Не слід плутати з параметром passwordякий використовується для аутентифікації Basic або Digest.

Можно также установить с помощью параметраstream_context

proxy_hoststring

Ім'я хоста для використання як проксі-сервер для HTTP-запитів.

Також має бути зазначений параметр proxy_port

proxy_portint

TCP-порт для использования при подключении к прокси-серверу, указанному в параметреproxy_host

proxy_loginstring

Необов'язкове ім'я користувача для аутентифікації на проксі-сервері, вказаному у параметрі proxy_hostза допомогою HTTP Basic Authentication.

proxy_passwordstring

Необов'язковий пароль для аутентифікації на проксі-сервері, вказаному у параметрі proxy_hostза допомогою HTTP Basic Authentication.

compressionint

Включає стиснення HTTP SOAP запитів та відповідей.

Значення має бути побітовим АБО з трьох частин: необов'язкова **SOAP_COMPRESSION_ACCEPT**для надсилання заголовка "Accept-Encoding"; або константа SOAP_COMPRESSION_GZIP або SOAP_COMPRESSION_DEFLATE для вказівки використовуваного алгоритму стискування; число від 1 до 9, щоб вказати рівень стиснення, який використовуватиметься у запиті. Наприклад, щоб увімкнути двосторонній стиск gzip з максимальним рівнем стиснення, використовуйте SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 9

encodingstring

Визначає внутрішнє кодування символів. Запити завжди надсилаються в UTF-8 і перетворюються на це кодування і назад.

tracebool

Захоплює інформацію про запит та відповідь, яка потім може бути доступна за допомогою методів: SoapClient::__getLastRequest() SoapClient::__getLastRequestHeaders() SoapClient::__getLastResponse() і SoapClient::__getLastResponseHeaders()

Если опущено, по умолчанию используется значение**false**

classmaparray

Використовується для зіставлення типів, визначених у WSDL із класами PHP. Має бути вказаний асоціативний масив (array) з іменами типів з WSDL як ключі та іменами класів PHP як значень. Зверніть увагу, що назва типу елемента не обов'язково збігається з ім'ям елемента (тега).

Надані імена класів завжди повинні бути повністю визначені за допомогою будь-яких просторів імен і ніколи не повинні починатися з ведучого слєша (\). Правильна форма може бути вказана за допомогою ::class

Зверніть увагу, що при створенні класу конструктор не викликатиметься, але магічні методи __set() і __get() будуть викликатися окремих властивостей.

typemaparray

Використовується для визначення зіставлень типів за допомогою визначених користувачем callback-функцій. Кожне зіставлення типів повинно бути масивом з ключами. type_name (Рядок (string), що визначає тип елемента XML); type_ns (рядок (string), що містить простір імен URI); from_xml callable, що приймає один рядковий параметр і повертає об'єкт) і to_xml callable, що приймає один об'єктний параметр і повертає рядок).

exceptionsbool

Визначає, чи помилки викидатимуть виняток типу SoapFault

По умолчанию значение**true**

connection_timeoutint

Визначає час очікування в секундах для підключення до SOAP. Параметр не визначає час очікування служб із повільними відповідями. Щоб обмежити час очікування завершення дзвінків, можна налаштувати конфігурацію. default_socket_timeout

cache_wsdlint

Если указан параметрwsdl, а также параметрsoap.wsdl_cache_enabled Увімкнено, цей параметр визначає тип кешування. Одне із значень: WSDL_CACHE_NONE WSDL_CACHE_DISK WSDL_CACHE_MEMORY або WSDL_CACHE_BOTH

Доступні два типи кешу: кешування у пам'яті, яке кешує WSDL у пам'яті поточного процесу та дискове кешування, яке кешує WSDL у файлі на диску, що поділяється між усіма процесами. Каталог, який використовуватиметься для дискового кешу, визначається параметром soap.wsdl_cache_dirОба кеша используют одинаковое время жизни, определяемое параметромsoap.wsdl_cache_ttl. У кеша в пам'яті також є максимальна кількість записів, що визначається параметром soap.wsdl_cache_limit

Якщо не вказано, використовуватиметься параметр конфігурації soap.wsdl_cache

user_agentstring

Значение для использования в HTTP-заголовкеUser-Agent під час виконання запитів.

Можно также установить с помощью параметраstream_context

Якщо не вказано, User-Agent буде "PHP-SOAP/" за яким слідує значення PHP_VERSION

stream_contextresource

Контекстstream context, створений за допомогою функції stream_context_create(), яка дає змогу встановити додаткові параметри.

Контекст може містити параметри контексту сокету параметри контексту SSL, а також вибрані опції контексту HTTP content_type header max_redirects protocol_version, иuser_agent

Зверніть увагу, що наступні заголовки HTTP генеруються автоматично або на основі інших параметрів і будуть ігноруватися, якщо вказані в параметрі контексту 'header' host connection user-agent content-length content-type cookie authorizationиproxy-authorization

featuresint

Бітова маска для включення однієї або кількох таких функцій:

SOAP_SINGLE_ELEMENT_ARRAYS

При декодуванні відповіді масив за замовчуванням визначається, чи з'являється ім'я елемента один чи кілька разів у певному батьківському елементі. Для елементів, які з'являються лише один раз, властивість об'єкта дозволяє отримати прямий доступ до вмісту; для елементів, які з'являються більше одного разу, властивість містить масив із вмістом кожного відповідного елемента.

Якщо увімкнено функцію SOAP_SINGLE_ELEMENT_ARRAYS, елементи, які з'являються лише один раз, поміщаються в одноелементний масив, щоб доступ був послідовним для всіх елементів. Це буде працювати лише при використанні WSDL, що містить схему відповіді. Для демонстрації дивіться розділ із прикладами.

SOAP_USE_XSI_ARRAY_TYPE

Якщо параметруuseили свойству WSDL передано значениеencoded, масиви примусово використовують тип SOAP-ENC:Array, а чи не специфічний для схеми.

SOAP_WAIT_ONE_WAY_CALLS

Очікування відповіді, навіть якщо WSDL вказує на односторонній запит.

keep_alivebool

Логічне значення, що визначає, чи слід надсилати заголовок Connection: Keep-AliveилиConnection: close

По умолчанию**true**

ssl_methodstring

Визначає версію протоколу SSL або TLS для використання у захищених з'єднаннях HTTP замість узгодження за промовчанням. Вказівка SOAP_SSL_METHOD_SSLv2 або SOAP_SSL_METHOD_SSLv3 змусить використовувати SSL 2 або SSL 3 відповідно. Вказівка ​​константи SOAP_SSL_METHOD_SSLv23 немає сенсу; константа існує лише зворотної сумісності. Починаючи з PHP 7.2, вказівка ​​константи SOAP_SSL_METHOD_TLS також немає сенсу; у попередніх версіях константа визначала примусове використання TLS 1.0.

Зверніть увагу, що SSL версій 2 і 3 вважаються небезпечними і можуть не підтримуватись встановленою бібліотекою OpenSSL.

Параметр оголошено Застарілимпочинаючи з PHP 8.1.0. Більш гнучкою альтернативою, яка дозволяє вказувати окремі версії TLS, можна використовувати параметр stream_context з параметром контексту 'crypto_method'.

Приклад #1 Вказівка ​​використання тільки TLS 1.3

Loading...

Помилки

МетодSoapClient::__construct() виводить помилку рівня E_ERROR, якщо параметри locationиuri не вказано у режимі не-WSDL.

Викидається виняток SoapFault, якщо параметр wsdl URI не може бути завантажено.

Приклади

Приклад #2 Приклад використання SoapClient::__construct()****

Loading...

Приклад #3 Приклад використання SOAP_SINGLE_ELEMENT_ARRAYS****

Loading...

Результат виконання наведеного прикладу:

По умолчанию:
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"
}