From d289e3a59dbf2ca802e22af31dcb613bc2f522af Mon Sep 17 00:00:00 2001 From: Andrey Kutejko Date: Tue, 20 Jan 2015 16:30:51 +0200 Subject: [PATCH] fix error handler related code --- ipf/middleware/error.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ipf/middleware/error.php b/ipf/middleware/error.php index 28fb311..436481f 100644 --- a/ipf/middleware/error.php +++ b/ipf/middleware/error.php @@ -4,7 +4,7 @@ class IPF_Error_Middleware extends IPF_Middleware { function call($request) { - $previous = set_error_handler(array($this, 'error_handler')); + $this->previous_error_handler = set_error_handler(array($this, 'error_handler')); register_shutdown_function(array($this, 'shutdown_handler'), $request); try { if (!$this->next) @@ -18,7 +18,10 @@ class IPF_Error_Middleware extends IPF_Middleware error_log($exception); $response = new IPF_HTTP_Response_ServerError($request, $exception); } - set_error_handler($previous); + if ($this->previous_error_handler) + set_error_handler($previous); + else + restore_error_handler(); return $response; } @@ -26,6 +29,9 @@ class IPF_Error_Middleware extends IPF_Middleware { if (error_reporting() & $errno) throw new \ErrorException($errstr, 0, $errno, $errfile, $errline); + + if ($this->previous_error_handler) + call_user_func($this->previous_error_handler, $errno, $errstr, $errfile, $errline); } function shutdown_handler($request) -- 2.49.0