Un tableau associatif spécifiant des options supplémentaires pour le client SOAP.
Si le paramĂštre wsdl
est fourni, ceci est facultatifâŻ; sinon,
au moins les paramĂštres location
et url
doivent ĂȘtre
fournis.
-
location
string
-
L'URL du serveur SOAP auquel envoyer la requĂȘte.
Requis si le paramĂštre wsdl
n'est pas fourni.
Si Ă la fois un paramĂštre wsdl
et
l'option location
sont fournis, l'option
location
remplacera toute location spécifiée dans le fichier WSDL.
-
uri
string
-
L'espace de noms cible du service SOAP.
Requis si le paramĂštre wsdl
n'est pas fourni;
sinon ignoré.
-
style
int
-
Spécifie le style de liaison à utiliser pour ce client, en utilisant les constantes
SOAP_RPC
et SOAP_DOCUMENT
.
SOAP_RPC
indique une liaison de style RPC, oĂč le
corps de la requĂȘte SOAP contient un encodage standard d'un appel de fonction.
SOAP_DOCUMENT
indique une liaison de style document,
oĂč le corps de la requĂȘte SOAP contient un document XML avec
une signification définie par le service.
Si le paramĂštre wsdl
est fourni, cette
option est ignorée et le style est lu à partir du fichier WSDL.
Si ni cette option ni le paramĂštre wsdl
ne sont fournis, le style RPC est utilisé.
-
use
int
-
Spécifie le style d'encodage à utiliser pour ce client, en utilisant les
constantes SOAP_ENCODED
ou SOAP_LITERAL
.
SOAP_ENCODED
indique un encodage utilisant les types
définis dans la spécification SOAP.
SOAP_LITERAL
indique un encodage utilisant un schéma
défini.
Si le paramĂštre wsdl
est fourni, cette
option est ignorée et l'encodage est lu à partir du fichier WSDL.
Si cette option et le paramĂštre wsdl
ne sont pas fournis,
le style "encoded" est utilisé.
-
soap_version
int
-
Spécifie la version du protocole SOAP à utiliser :
SOAP_1_1
pour SOAP 1.1,
ou SOAP_1_2
pour SOAP 1.2.
Si omis, SOAP 1.1 est utilisé.
-
authentication
int
-
Spécifie la méthode d'authentification lors de l'utilisation de l'authentification
HTTP dans les requĂȘtes. La valeur peut ĂȘtre soit
SOAP_AUTHENTICATION_BASIC
ou SOAP_AUTHENTICATION_DIGEST
.
Si omis et que l'option login
est fournie,
l'authentification HTTP Basic est utilisée.
-
login
string
-
Nom d'utilisateur Ă utiliser avec l'authentification HTTP Basic ou HTTP Digest.
-
password
string
-
Mot de passe Ă utiliser avec l'authentification HTTP Basic ou HTTP Digest.
Ă ne pas confondre avec passphrase
,
qui est utilisé avec l'authentification par certificat client HTTPS.
-
local_cert
string
-
Chemin vers un certificat client Ă utiliser avec l'authentification HTTPS.
Il doit s'agir d'un fichier encodé en PEM contenant votre certificat
et votre clé privée.
Le fichier peut également inclure une chaßne d'émetteurs, qui doit venir
aprĂšs le certificat client.
Peut Ă©galement ĂȘtre dĂ©fini via
stream_context
,
qui permet également de spécifier un fichier de clé privée distinct.
-
passphrase
string
-
Passphrase pour le certificat client spécifié dans l'option
local_cert
.
Ă ne pas confondre avec password
,
qui est utilisé avec l'authentification HTTP Basic ou HTTP Digest.
Peut Ă©galement ĂȘtre dĂ©fini via
stream_context
.
-
proxy_host
string
-
Nom d'hĂŽte Ă utiliser comme serveur mandataire pour les requĂȘtes HTTP.
L'option proxy_port
doit Ă©galement ĂȘtre spĂ©cifiĂ©e.
-
proxy_port
int
-
Port TCP Ă utiliser lors de la connexion au serveur mandataire
spécifié dans proxy_host
.
-
proxy_login
string
-
Nom d'utilisateur facultatif pour s'authentifier auprĂšs du serveur mandataire
spécifié dans proxy_host
, en utilisant l'authentification
HTTP Basic.
-
proxy_password
string
-
Mot de passe facultatif pour s'authentifier auprĂšs du serveur mandataire
spécifié dans proxy_host
, en utilisant l'authentification
HTTP Basic.
-
compression
int
-
Active la compression des requĂȘtes et des rĂ©ponses SOAP HTTP.
La valeur doit ĂȘtre le rĂ©sultat de l'opĂ©ration OR binaire de trois parties :
un SOAP_COMPRESSION_ACCEPT
optionnel,
pour envoyer l'en-tĂȘte "Accept-Encoding" ; soit
SOAP_COMPRESSION_GZIP
ou SOAP_COMPRESSION_DEFLATE
pour indiquer
l'algorithme de compression Ă utiliser ; et un nombre entre 1 et 9
pour indiquer le niveau de compression Ă utiliser dans la requĂȘte.
Par exemple, pour activer la compression gzip bidirectionnelle avec le niveau
de compression maximal, utilisez
SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 9
.
-
encoding
string
-
DĂ©finit l'encodage de caractĂšres interne. Les requĂȘtes sont toujours envoyĂ©es
en UTF-8 et converties depuis et vers cet encodage.
-
trace
bool
-
Capture les informations de requĂȘte et de rĂ©ponse, qui peuvent ensuite ĂȘtre
consultées à l'aide des méthodes
SoapClient::__getLastRequest(),
SoapClient::__getLastRequestHeaders(),
SoapClient::__getLastResponse(),
et SoapClient::__getLastResponseHeaders().
Si omis, la valeur par défaut est false
-
classmap
array
-
Utilisé pour associer les types définis dans le WSDL aux classes PHP.
Il doit ĂȘtre spĂ©cifiĂ© sous la forme d'un tableau associatif avec
les noms de types du WSDL en tant que clés et les noms de classes PHP en tant que valeurs.
Notez que les noms de types d'un élément ne correspondent pas nécessairement au nom
de l'élément (balise).
Les noms de classe fournis doivent toujours ĂȘtre entiĂšrement qualifiĂ©s avec
tous les espaces de noms, et ne jamais
commencer par un \
. La forme correcte peut ĂȘtre
générée en utilisant
::class.
Notez que lors de la création d'une classe, le constructeur ne sera pas appelé,
mais les méthodes magiques __set() et
__get() pour les propriétés individuelles le seront.
-
typemap
array
-
Utilisé pour définir des correspondances de types à l'aide de fonctions de rappel
définies par l'utilisateur.
Chaque correspondance de type doit ĂȘtre un tableau avec les clĂ©s
type_name
(une chaßne de caractÚres spécifiant le
type d'élément XML),
type_ns
(une chaĂźne de caractĂšres contenant
l'URI de l'espace de noms),
from_xml
(un appelable acceptant un paramĂštre
de type chaĂźne de caractĂšres et renvoyant un objet) et
to_xml
(un appelable acceptant un paramĂštre
de type objet et renvoyant une chaĂźne de caractĂšres).
-
exceptions
bool
-
Définit si les erreurs génÚrent des exceptions de type
SoapFault.
Par défaut, c'est true
-
connection_timeout
int
-
Définit un délai d'attente en secondes pour la connexion au service SOAP.
Cette option ne définit pas un délai d'attente pour les services ayant une
réponse lente.
Pour limiter le temps d'attente des appels, l'option de configuration
default_socket_timeout
est disponible.
-
cache_wsdl
int
-
Si le paramĂštre wsdl
est spécifié et que l'option de
configuration
soap.wsdl_cache_enabled
est activée, cette option détermine le type de mise en cache.
L'une des constantes WSDL_CACHE_NONE
,
WSDL_CACHE_DISK
,
WSDL_CACHE_MEMORY
ou
WSDL_CACHE_BOTH
.
Deux types de cache sont disponibles : le cache en mémoire, qui met en cache le WSDL
dans la mémoire du processus en cours, et le cache sur disque, qui met en cache le
WSDL dans un fichier sur le disque partagé entre tous les processus.
Le répertoire à utiliser pour le cache sur disque est déterminé par l'option de configuration
soap.wsdl_cache_dir.
Les deux caches ont la mĂȘme durĂ©e de vie, dĂ©terminĂ©e par l'option de configuration
soap.wsdl_cache_ttl.
Le cache en mémoire a également un nombre maximum d'entrées déterminé par l'option de configuration
soap.wsdl_cache_limit.
Si non spécifié, l'option de configuration
soap.wsdl_cache sera utilisée.
-
user_agent
string
-
La valeur Ă utiliser dans l'en-tĂȘte HTTP User-Agent
lors des requĂȘtes.
Peut Ă©galement ĂȘtre dĂ©finie via
stream_context
.
Si non spécifié, l'agent utilisateur sera "PHP-SOAP/"
suivi de la valeur de PHP_VERSION
.
-
stream_context
resource
-
Un contexte de flux créé par
stream_context_create(), qui permet de définir des options supplémentaires.
Le contexte peut inclure des options de contexte socket,
des options de contexte SSL,
ainsi que certaines options de contexte HTTP sélectionnées :
content_type
, header
,
max_redirects
, protocol_version
,
et user_agent
.
Notez que les en-tĂȘtes HTTP suivants sont gĂ©nĂ©rĂ©s automatiquement ou Ă partir d'autres
options, et seront ignorés s'ils sont spécifiés dans l'option de contexte 'header'
:
host
, connection
,
user-agent
, content-length
,
content-type
, cookie
,
authorization
et proxy-authorization
.
-
features
int
-
Un masque de bits pour activer une ou plusieurs des fonctionnalités suivantes :
-
SOAP_SINGLE_ELEMENT_ARRAYS
-
Lors du décodage d'une réponse en tableau, le comportement par défaut consiste à détecter si
un nom d'élément apparaßt une seule fois ou plusieurs fois dans un élément parent particulier.
Pour les éléments qui n'apparaissent qu'une fois, une propriété d'objet permet un accÚs direct au
contenu ; pour les éléments qui apparaissent plus d'une fois, la propriété contient un
tableau avec le contenu de chaque élément correspondant.
Si la fonctionnalité SOAP_SINGLE_ELEMENT_ARRAYS
est activée,
les éléments qui n'apparaissent qu'une seule fois sont placés dans un tableau à un seul élément, de sorte que
l'accÚs soit cohérent pour tous les éléments. Cela n'a d'effet que lors de l'utilisation d'un WSDL
contenant un schéma pour la réponse. Consultez la section des examples pour une illustration.
-
SOAP_USE_XSI_ARRAY_TYPE
-
Lorsque l'option use
option ou la propriété WSDL est définie sur encoded
,
force les tableaux Ă utiliser un type SOAP-ENC:Array
, plutĂŽt qu'un
type spécifique au schéma.
-
SOAP_WAIT_ONE_WAY_CALLS
-
Attendre une rĂ©ponse mĂȘme si le WSDL indique une requĂȘte Ă sens unique.
-
keep_alive
bool
-
une valeur booléenne définissant si
envoyer l'en-tĂȘte Connection: Keep-Alive
ou
Connection: close
.
Par défaut, c'est true
-
ssl_method
string
-
Spécifie la version du protocole SSL ou TLS à utiliser avec les connexions HTTP sécurisées, au lieu de la négociation par défaut.
Spécifier SOAP_SSL_METHOD_SSLv2
ou SOAP_SSL_METHOD_SSLv3
forcera l'utilisation de SSL 2 ou SSL 3, respectivement.
Spécifier SOAP_SSL_METHOD_SSLv23
n'a aucun effet ; cette constante n'existe que pour des raisons de compatibilité ascendante.
à partir de PHP 7.2, spécifier SOAP_SSL_METHOD_TLS
n'a également aucun effet ; dans les versions antérieures, cela forçait l'utilisation de TLS 1.0.
Il est Ă noter que les versions SSL 2 et 3 sont considĂ©rĂ©es comme non sĂ©curisĂ©es et peuvent ne pas ĂȘtre prises en charge par la bibliothĂšque OpenSSL installĂ©e.
Cette option est obsolĂšte Ă partir de PHP 8.1.0.
Une alternative plus flexible, qui permet de spécifier des versions individuelles de TLS, consiste à utiliser l'option contexte_de_flux
avec le paramĂštre de contexte 'crypto_method'.
Exemple #1 Spécifier l'utilisation de TLS 1.3 uniquement
<?php
$context = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT
]
]);
$client = new SoapClient("some.wsdl", ['context' => $context]);