SoapServer::fault

(PHP 5, PHP 7, PHP 8)

SoapServer::faultEmite falha no SoapServer indicando um erro

Descrição

public SoapServer::fault(
    string $code,
    string $string,
    string $actor = "",
    mixed $details = null,
    string $name = ""
): void

Envia uma resposta ao cliente da solicitação atual indicando um erro.

Nota:

Isso só pode ser chamado ao lidar com uma solicitação.

Parâmetros

code

O código de erro a ser retornado

string

Uma breve descrição do erro

actor

Uma string que identifica o ator que causou a falha.

details

Mais detalhes da falha

name

O nome da falha. Isso pode ser usado para selecionar um nome de um arquivo WSDL.

Valor Retornado

Nenhum valor é retornado.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 4 notes

up
3
Amr Mostafa
15 years ago
This function currently terminates execution as well, which may be undesirable. See: http://bugs.php.net/bug.php?id=49513
up
0
Anonymous
17 years ago
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
up
-3
christian at cmjdesign dot dk
12 years ago
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.
up
-5
dub357 at gmail dot com
13 years ago
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>");
?>
To Top