Jordi Boggiano vor 12 Jahren
Ursprung
Commit
cb47b537f3
1 geänderte Dateien mit 7 neuen und 5 gelöschten Zeilen
  1. 7 5
      src/Monolog/ErrorHandler.php

+ 7 - 5
src/Monolog/ErrorHandler.php

@@ -75,12 +75,12 @@ class ErrorHandler
         }
         }
     }
     }
 
 
-    public function registerErrorHandler($levelMap = array(), $callPrevious = true, $errorTypes = -1)
+    public function registerErrorHandler(array $levelMap = array(), $callPrevious = true, $errorTypes = -1)
     {
     {
         $prev = set_error_handler(array($this, 'handleError'), $errorTypes);
         $prev = set_error_handler(array($this, 'handleError'), $errorTypes);
         $this->errorLevelMap = array_merge($this->defaultErrorLevelMap(), $levelMap);
         $this->errorLevelMap = array_merge($this->defaultErrorLevelMap(), $levelMap);
-        if ($callPrevious && $prev) {
-            $this->previousErrorHandler = $prev;
+        if ($callPrevious) {
+            $this->previousErrorHandler = $prev ?: true;
         }
         }
     }
     }
 
 
@@ -89,7 +89,7 @@ class ErrorHandler
         register_shutdown_function(array($this, 'handleFatalError'));
         register_shutdown_function(array($this, 'handleFatalError'));
 
 
         $this->reservedMemory = str_repeat(' ', 1024 * $reservedMemorySize);
         $this->reservedMemory = str_repeat(' ', 1024 * $reservedMemorySize);
-        $this->fatalLevel = $level === null ? Logger::CRITICAL : $level;
+        $this->fatalLevel = $level === null ? Logger::ALERT : $level;
     }
     }
 
 
     protected function defaultErrorLevelMap()
     protected function defaultErrorLevelMap()
@@ -137,7 +137,9 @@ class ErrorHandler
         $level = isset($this->errorLevelMap[$code]) ? $this->errorLevelMap[$code] : Logger::CRITICAL;
         $level = isset($this->errorLevelMap[$code]) ? $this->errorLevelMap[$code] : Logger::CRITICAL;
         $this->logger->log($level, self::codeToString($code).': '.$message, array('file' => $file, 'line' => $line));
         $this->logger->log($level, self::codeToString($code).': '.$message, array('file' => $file, 'line' => $line));
 
 
-        if ($this->previousErrorHandler) {
+        if ($this->previousErrorHandler === true) {
+            return false;
+        } elseif ($this->previousErrorHandler) {
             return call_user_func($this->previousErrorHandler, $code, $message, $file, $line, $context);
             return call_user_func($this->previousErrorHandler, $code, $message, $file, $line, $context);
         }
         }
     }
     }