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 = "",$lang = ""Envía una respuesta al cliente de la petición actual, con un mensaje de error.
Nota:
Esto solo es posible durante la ejecución de la petición.
codeEl código de error a devolver.
stringUna descripción del error.
actorUna cadena que identifica al actor involucrado.
detailsMás detalles sobre el fallo.
nameEl nombre del error. Esto puede ser utilizado para seleccionar un nombre en un archivo WSDL.
langNo se retorna ningún valor.
| Versión | Descripción |
|---|---|
| 8.5.0 |
Se ha añadido el parámetro opcional lang
para cumplir con la especificación SOAP 1.2.
|
This function currently terminates execution as well, which may be undesirable. See: http://bugs.php.net/bug.php?id=49513If 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=43507hi,
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>");
?>