SoapServer::__construct

(PHP 5, PHP 7, PHP 8)

SoapServer::__constructConstructeur 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

add a note

User Contributed Notes 1 note

up
13
Anonymous
14 years ago
// Workin Server with Client for localhost

// server.php

<?php 
class MyClass {
  public function helloWorld() {

    return 'Hallo Welt '. print_r(func_get_args(), true);
  }
}
 
try {
  $server = new SOAPServer(
    NULL,
    array(
     'uri' => 'http://localhost/soap/server.php'
    )
  );
 
  $server->setClass('MyClass');
  $server->handle();
}
 
catch (SOAPFault $f) {
  print $f->faultstring;
}

?>

// client.php:

<?php
$client = new SoapClient(null, array(
      'location' => "http://localhost/soap/server.php",
      'uri'      => "http://localhost/soap/server.php",
      'trace'    => 1 ));

echo $return = $client->__soapCall("helloWorld",array("world"));
?>

// Hope you like it