diff --git a/ErrorHandler.php b/ErrorHandler.php index b5109f4..840353f 100644 --- a/ErrorHandler.php +++ b/ErrorHandler.php @@ -55,7 +55,6 @@ class ErrorHandler \E_USER_DEPRECATED => 'User Deprecated', \E_NOTICE => 'Notice', \E_USER_NOTICE => 'User Notice', - \E_STRICT => 'Runtime Notice', \E_WARNING => 'Warning', \E_USER_WARNING => 'User Warning', \E_COMPILE_WARNING => 'Compile Warning', @@ -73,7 +72,6 @@ class ErrorHandler \E_USER_DEPRECATED => [null, LogLevel::INFO], \E_NOTICE => [null, LogLevel::WARNING], \E_USER_NOTICE => [null, LogLevel::WARNING], - \E_STRICT => [null, LogLevel::WARNING], \E_WARNING => [null, LogLevel::WARNING], \E_USER_WARNING => [null, LogLevel::WARNING], \E_COMPILE_WARNING => [null, LogLevel::WARNING], @@ -183,6 +181,11 @@ public static function call(callable $function, ...$arguments) public function __construct(?BufferingLogger $bootstrappingLogger = null, bool $debug = false) { + if (\PHP_VERSION_ID < 80400) { + $this->levels[\E_STRICT] = 'Runtime Notice'; + $this->loggers[\E_STRICT] = [null, LogLevel::WARNING]; + } + if ($bootstrappingLogger) { $this->bootstrappingLogger = $bootstrappingLogger; $this->setDefaultLogger($bootstrappingLogger); diff --git a/Tests/ErrorHandlerTest.php b/Tests/ErrorHandlerTest.php index 2b625f6..e4294c8 100644 --- a/Tests/ErrorHandlerTest.php +++ b/Tests/ErrorHandlerTest.php @@ -213,7 +213,6 @@ public function testDefaultLogger() \E_USER_DEPRECATED => [null, LogLevel::INFO], \E_NOTICE => [$logger, LogLevel::WARNING], \E_USER_NOTICE => [$logger, LogLevel::CRITICAL], - \E_STRICT => [null, LogLevel::WARNING], \E_WARNING => [null, LogLevel::WARNING], \E_USER_WARNING => [null, LogLevel::WARNING], \E_COMPILE_WARNING => [null, LogLevel::WARNING], @@ -225,6 +224,11 @@ public function testDefaultLogger() \E_ERROR => [null, LogLevel::CRITICAL], \E_CORE_ERROR => [null, LogLevel::CRITICAL], ]; + + if (\PHP_VERSION_ID < 80400) { + $loggers[\E_STRICT] = [null, LogLevel::WARNING]; + } + $this->assertSame($loggers, $handler->setLoggers([])); } finally { restore_error_handler(); @@ -478,7 +482,6 @@ public function testBootstrappingLogger() \E_USER_DEPRECATED => [$bootLogger, LogLevel::INFO], \E_NOTICE => [$bootLogger, LogLevel::WARNING], \E_USER_NOTICE => [$bootLogger, LogLevel::WARNING], - \E_STRICT => [$bootLogger, LogLevel::WARNING], \E_WARNING => [$bootLogger, LogLevel::WARNING], \E_USER_WARNING => [$bootLogger, LogLevel::WARNING], \E_COMPILE_WARNING => [$bootLogger, LogLevel::WARNING], @@ -491,6 +494,10 @@ public function testBootstrappingLogger() \E_CORE_ERROR => [$bootLogger, LogLevel::CRITICAL], ]; + if (\PHP_VERSION_ID < 80400) { + $loggers[\E_STRICT] = [$bootLogger, LogLevel::WARNING]; + } + $this->assertSame($loggers, $handler->setLoggers([])); $handler->handleError(\E_DEPRECATED, 'Foo message', __FILE__, 123, []);