(PHP 5, PHP 7, PHP 8)
SoapClient::__soapCall — Appelle une fonction SOAP
$name
,$args
,$options
= null
,$inputHeaders
= null
,&$outputHeaders
= null
Ceci est une fonction bas niveau de l'API qui est utilisée pour faire des appels
SOAP. Habituellement, en mode WSDL, vous pouvez appeler simplement les
fonctions SOAP comme des méthodes SoapClient.
Cette méthode est pratique en mode non-WSDL lorsque
soapaction
est inconnu, uri
est différente
de la valeur par défaut ou lors de l'envoi et/ou de la réception d'en-têtes SOAP.
En cas d'erreur, un appel à une fonction SOAP peut causer un lancement d'exception par PHP ou retourner un objet SoapFault si les exceptions sont désactivées. Pour vérifier si l'appel à cette fonction n'arrive pas à attraper les exceptions SoapFault, vérifiez le résultat avec la fonction is_soap_fault().
name
Le nom de la fonction SOAP à appeler.
args
Un tableau d'arguments à passer à la fonction. Cela peut être un tableau associatif ou ordonné. Notez que la plupart des serveurs SOAP nécessite des noms de paramètres, auquel cas, ce doit être un tableau associatif.
options
Un tableau associatif d'options à passer au client.
Une option de location
pour le service Web distant.
Une option uri
avec l'espace de noms cible du service SOAP.
L'option soapaction
est l'action à appeler.
inputHeaders
Un tableau d'entêtes à envoyer avec la requête SOAP.
outputHeaders
Si fourni, ce tableau sera rempli avec les entêtes de la réponse SOAP retournée.
Les fonctions SOAP retournent une ou plusieurs valeurs. Si une seule valeur est
retournée par la fonction SOAP, la valeur retournée de
__soapCall
sera une valeur simple (e.g. un entier, une chaîne
de caractères, etc.). Si plusieurs valeurs sont retournées,
__soapCall
retournera un tableau associatif contenant les
noms des paramètres affichés.
En cas d'erreur, si l'objet SoapClient a été construit
avec l'option exceptions
qui valait false
, un objet
SoapFault sera retourné.
Exemple #1 Exemple avec SoapClient::__soapCall()
<?php
$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);
$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c), NULL,
new SoapHeader(), $output_headers);
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$client->SomeFunction($a, $b, $c);
$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c),
array('soapaction' => 'some_action',
'uri' => 'some_uri'));
?>