There are only a few legitimate "codes" that a SOAP fault can have and be understood by most clients in accordance with the protocol. You can't just pass in, for example, a database error code or you'll get a fatal error like "SoapFault::__construct(): Invalid parameters. Invalid fault code."
The ones you generally want to use are "Sender" where you've gotten bad parameters, or "Receiver" where the server has gotten an error for some reason.
See here:
http://www.w3.org/TR/soap12-part1/#faultcodes
SoapFault::SoapFault
(PHP 5 >= 5.0.1)
SoapFault::SoapFault — SoapFault constructor
Description
SoapFault sert à envoyer des erreurs SOAP depuis le PHP.faultcode , faultstring , faultactor et details sont les éléments standards SOAP.
Liste de paramètres
- faultcode
-
Le code erreur de SoapFault.
- faultstring
-
Le message d'erreur de SoapFault.
- faultactor
-
Une chaîne identifiant l'acteur qui a causé l'erreur.
- detail
-
- faultname
-
Peut être utilisé pour sélectionner l'encodage qui convient depuis WSDL.
- headerfault
-
Peut être utilisé durant la gestion de l'entête SOAP pour rapporter une erreur dans l'en-tête de réponse.
Exemples
Exemple #1 Quelques exemples avec SoapFault
<?php
function test($x)
{
return new SoapFault("Server", "Un message d'erreur");
}
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>
Il est possible d'utiliser le mécanisme des exceptions de PHP pour lancer des exceptions SoapFault.
Exemple #2 Emission d'exceptions SoapFault
<?php
function test($x)
{
throw new SoapFault("Server", "Un message d'erreur");
}
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>
Voir aussi
- SoapServer::fault - Emet une erreur SoapServer
- is_soap_fault() - Vérifie si SOAP retourne une erreur
SoapFault::SoapFault
14-Jul-2008 07:10
