Edit report at https://bugs.php.net/bug.php?id=49513&edit=1

 ID:                 49513
 Comment by:         jeroen at asystance dot nl
 Reported by:        amr dot mostafa at gmail dot com
 Summary:            SoapServer->fault() shouldn't halt execution
 Status:             Open
 Type:               Feature/Change Request
 Package:            SOAP related
 Operating System:   GNU/Linux
 PHP Version:        5.3.0
 Block user comment: N
 Private report:     N

 New Comment:

This behavior is very undesirable!

How can I let a client know about the fault _and_ do server-side Exception 
handling?

I'd love to do

try {
  $server->handle();
} catch (Exception $e) {
  $server->fault($e->getCode(), $e->getMessage());
  throw $e;
}

To have default handling for uncaught Exceptions (which logs to file, email, 
whatever), but that's not possible.


Previous Comments:
------------------------------------------------------------------------
[2009-09-09 12:54:09] amr dot mostafa at gmail dot com

Description:
------------
Calling SoapServer->fault() causes execution to terminate, there is no way for 
the developer to get the XML response itself and process it differently.


Reproduce code:
---------------
$server = SoapServer(NULL, array('location' => 'http://example.com', 'uri' => 
'http://example.com'));
$server->fault('foo', 'bar');
echo 'We are past $sever->fault()!'


Expected result:
----------------
We are past $server->fault()!


Actual result:
--------------
"We are past $server->fault()!" is never printed, only the XML for the SOAP 
Fault is.


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=49513&edit=1

Reply via email to