(PHP 5 >= 5.0.1, PHP 7)
SoapClient::__soapCall — Appelle une fonction SOAP
$function_name
, array $arguments
[, array $options
[, mixed $input_headers
[, array &$output_headers
]]] )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().
function_name
Le nom de la fonction SOAP à appeler.
arguments
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.
input_headers
Un tableau d'entêtes à envoyer avec la requête SOAP.
output_headers
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'));
?>