SoapServer::__construct
PHP Manual
PHP Manual»SoapServer»SoapServer::__construct

SoapServer::__construct

(PHP 5, PHP 7, PHP 8)

SoapServer::__construct — Constructeur SoapServer

Description

public function SoapServer::__construct(?string $wsdl, array $options = [])

Ce constructeur permet la création d'objets SoapServer en mode WSDL ou non-WSDL.

Liste de paramètres

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.

Exemples

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")));

?>

Voir aussi

To Top