(PHP 5, PHP 7, PHP 8)
SoapServer::__construct — Constructeur SoapServer
Ce constructeur permet la création d'objets SoapServer en mode WSDL ou non-WSDL.
wsdl
Pour utiliser le mode WSDL, il faut définir l'URI du fichier
WSDL dans ce paramètre. Avec les autres situations, il faut définir
ce paramètre à null et définir l'option uri.
options
Permet de définir une version SOAP par défaut (soap_version),
un jeu de caractères d'encodage interne (encoding)
et un URI acteur (actor).
L'option classmap peut être utilisée pour lier
quelques types WSDL à des classes PHP. Cette option doit être un
tableau avec les types WSDL en tant que clés et les noms des classes PHP
en tant que valeurs.
À partir de PHP 8.4.0, les clés peuvent également être indiquées en
notation de Clark, sous la forme {namespace}type,
afin de faire correspondre un type d'un espace de noms XML
particulier, par exemple '{http://example.com}foo'.
L'option typemap est un tableau dont les clés sont
type_name, type_ns (URI du namespace),
from_xml (fonction de rappel acceptant un paramètre de type chaîne de caractères) et
to_xml (fonction de rappel acceptant un paramètre de type objet).
L'option cache_wsdl prend une des valeurs
WSDL_CACHE_NONE,
WSDL_CACHE_DISK,
WSDL_CACHE_MEMORY ou
WSDL_CACHE_BOTH.
La dernière option est features
qui peut être définie à
SOAP_WAIT_ONE_WAY_CALLS,
SOAP_SINGLE_ELEMENT_ARRAYS,
SOAP_USE_XSI_ARRAY_TYPE.
L'option send_errors peut être définie à false pour envoyer
un message d'erreur générique ("Internal error") au lieu du message d'erreur
spécifique.
Exemple #1 Exemples avec SoapServer::__construct()
<?php
$server = new SoapServer("some.wsdl");
$server = new SoapServer("some.wsdl", array('soap_version' => SOAP_1_2));
$server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C"));
$server = new SoapServer("some.wsdl", array('encoding'=>'ISO-8859-1'));
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
class MyBook {
public $title;
public $author;
}
$server = new SoapServer("books.wsdl", array('classmap' => array('book' => "MyBook")));
?>