From 8ac59e9b215ef566aa671e508c7f1862b44f9457 Mon Sep 17 00:00:00 2001 From: Marc Bennewitz Date: Sat, 19 Jan 2013 20:06:07 +0100 Subject: [PATCH 1/2] CS fixes --- src/Logger.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Logger.php b/src/Logger.php index 1b6461fc..95754e3f 100644 --- a/src/Logger.php +++ b/src/Logger.php @@ -53,7 +53,7 @@ class Logger implements LoggerInterface E_RECOVERABLE_ERROR => self::ERR, E_STRICT => self::DEBUG, E_DEPRECATED => self::DEBUG, - E_USER_DEPRECATED => self::DEBUG + E_USER_DEPRECATED => self::DEBUG, ); /** @@ -67,7 +67,7 @@ class Logger implements LoggerInterface * Registered exception handler * * @var bool - */ + */ protected static $registeredExceptionHandler = false; /** @@ -534,7 +534,7 @@ public static function registerErrorHandler(Logger $logger, $continueNativeHandl 'errno' => $level, 'file' => $file, 'line' => $line, - 'context' => $context + 'context' => $context, )); } From 9ff2ccee89593d85fc7fa8946902ab98e64a9edd Mon Sep 17 00:00:00 2001 From: Matthew Weier O'Phinney Date: Mon, 21 Jan 2013 13:15:24 -0600 Subject: [PATCH 2/2] [zendframework/zf2#3493] Update registerErrorHandler to return previous handler --- src/Logger.php | 39 ++++++++++++++++++++------------------- test/LoggerTest.php | 5 ++++- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/Logger.php b/src/Logger.php index 95754e3f..248e1a3d 100644 --- a/src/Logger.php +++ b/src/Logger.php @@ -510,7 +510,7 @@ public function debug($message, $extra = array()) * @link http://www.php.net/manual/function.set-error-handler.php * @param Logger $logger * @param bool $continueNativeHandler - * @return bool + * @return mixed Returns result of set_error_handler * @throws Exception\InvalidArgumentException if logger is null */ public static function registerErrorHandler(Logger $logger, $continueNativeHandler = false) @@ -520,29 +520,30 @@ public static function registerErrorHandler(Logger $logger, $continueNativeHandl return false; } - $handlerRet = !$continueNativeHandler; - set_error_handler(function ($level, $message, $file, $line, $context) use ($logger, $handlerRet) { - $iniLevel = error_reporting(); + $previous = set_error_handler( + function ($level, $message, $file, $line, $context) use ($logger, $continueNativeHandler) { + $iniLevel = error_reporting(); - if ($iniLevel & $level) { - if (isset(Logger::$errorPriorityMap[$level])) { - $priority = Logger::$errorPriorityMap[$level]; - } else { - $priority = Logger::INFO; + if ($iniLevel & $level) { + if (isset(Logger::$errorPriorityMap[$level])) { + $priority = Logger::$errorPriorityMap[$level]; + } else { + $priority = Logger::INFO; + } + $logger->log($priority, $message, array( + 'errno' => $level, + 'file' => $file, + 'line' => $line, + 'context' => $context, + )); } - $logger->log($priority, $message, array( - 'errno' => $level, - 'file' => $file, - 'line' => $line, - 'context' => $context, - )); - } - return $handlerRet; - }); + return !$continueNativeHandler; + } + ); static::$registeredErrorHandler = true; - return true; + return $previous; } /** diff --git a/test/LoggerTest.php b/test/LoggerTest.php index b2c9d3f8..ad1a5fb4 100644 --- a/test/LoggerTest.php +++ b/test/LoggerTest.php @@ -253,7 +253,10 @@ public function testRegisterErrorHandler() $writer = new MockWriter; $this->logger->addWriter($writer); - $this->assertTrue(Logger::registerErrorHandler($this->logger)); + $previous = Logger::registerErrorHandler($this->logger); + $this->assertNotNull($previous); + $this->assertTrue(false !== $previous); + // check for single error handler instance $this->assertFalse(Logger::registerErrorHandler($this->logger));