(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().
nameLe nom de la fonction SOAP à appeler.
argsUn 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.
optionsUn 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.
inputHeadersUn tableau d'entêtes à envoyer avec la requête SOAP.
outputHeadersSi 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'));
?>