This function currently terminates execution as well, which may be undesirable. See: http://bugs.php.net/bug.php?id=49513
$code
,$string
,$actor
= "",$details
= null
,$name
= ""Envoie une réponse au client de la requête courante, avec un message d'erreur.
Note:
Cela n'est possible que durant l'exécution de la requête.
code
Le code d'erreur à retourner.
string
Une description de l'erreur.
actor
Une chaîne identifiant l'acteur en cause.
details
Plus de détails sur la faute.
name
Le nom de l'erreur. Cela peut être utilisé pour sélectionner un nom dans un fichier WSDL.
Aucune valeur n'est retournée.
This function currently terminates execution as well, which may be undesirable. See: http://bugs.php.net/bug.php?id=49513
If you use Adobe Flex, Flash or AIR as SOAP client and are unable to get the error message in case of a soap fault, upgrade to PHP 5.2.6.
Details in:
http://bugs.php.net/bug.php?id=43507
hi,
to control the fault output one may do the following
/**
* mySoapServer class
*/
class mySoapServer extends SoapServer {
public function __construct($wsdl, array $options = null) {
parent::SoapServer($wsdl, $options);
}
public function fault ($code, $string, $actor = null, $details = null, $name = null) {
throw new SoapFault($code, $string, $actor, $details, $name);
}
}
Use:
try {
$server = new mySoapServer(null, array('uri' => $_SERVER['REQUEST_URI']));
$server->setClass('mySoapAPI');
$server->handle();
} catch (SoapFault $exc) {
echo $exc->getTraceAsString();
}
that how i did this,
hope iot can help some one.
This function also sends a 500 response code back to the client with the request.
This was causing issues with an Apache Axis 1.2 client I had so I instead implemented by own fault handling:
<?php
header("Content-Type: text/xml");
header("Status: 200");
die("<SOAP-ENV:Envelope xmlns:SOAP-ENV=\\"http://schemas.xmlsoap.org/soap/envelope/\\">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>500</faultcode>
<faultstring>".$ex->getMessage())."</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>");
?>