php error handler-> SOAP_Fault in V0.7.3
| From: | Tristan Ludowyk | Date: | Thu, 29 May 2003 02:20:55 +0000 |
| Subject: | php error handler-> SOAP_Fault in V0.7.3 | ||
| References: | 1 | Groups: | php.soap |
| Request: | Send a blank email to php-soap+get-692@lists.php.net to get a copy of this message | ||
I just noticed that the SOAP_Server::callMethod function now unsets the
global var $soap_server_fault and then checks if it is set when returning
either the fault or the response. This seems to have broken the error
handling mechanism, in that when I call trigger_error() the
SOAP_ServerErrorHandler runs, and sets the $soap_server_fault global
variable, but in callMethod, it remains unset and the fault is never
returned.
What was the reason that this was changed?
Tristan.
function callMethod($methodname, &$args) {
global $soap_server_fault;
// unset($soap_server_fault);
set_error_handler("SOAP_ServerErrorHandler");
if ($args) {
// call method with parameters
if (isset($this->soapobject) && is_object($this->soapobject)) {
$ret = @call_user_func_array(array(&$this->soapobject,
$methodname),$args);
} else {
$ret = @call_user_func_array($methodname,$args);
}
} else {
// call method w/ no parameters
if (is_object($this->soapobject)) {
$ret = @call_user_func(array(&$this->soapobject,
$methodname));
} else {
$ret = @call_user_func($methodname);
}
}
restore_error_handler();
// return $soap_server_fault?$soap_server_fault:$ret;
return isset($soap_server_fault)?$soap_server_fault:$ret;
}