[ticket/17176] Fix debug error handling

PHPBB3-17176
This commit is contained in:
Marc Alexander 2023-09-21 15:22:33 +02:00
parent 43772c0608
commit cf799897e2
No known key found for this signature in database
GPG key ID: 50E0D2423696F995

View file

@ -14,7 +14,7 @@
namespace phpbb\debug; namespace phpbb\debug;
use Symfony\Component\ErrorHandler\BufferingLogger; use Symfony\Component\ErrorHandler\BufferingLogger;
use Symfony\Component\ErrorHandler\Debug as DebugHandler; use Symfony\Component\ErrorHandler\DebugClassLoader;
use Symfony\Component\ErrorHandler\ErrorHandler; use Symfony\Component\ErrorHandler\ErrorHandler;
/** /**
@ -37,7 +37,7 @@ class debug
* @param int|null $errorReportingLevel The level of error reporting you want * @param int|null $errorReportingLevel The level of error reporting you want
* @param bool $displayErrors Whether to display errors (for development) or just log them (for production) * @param bool $displayErrors Whether to display errors (for development) or just log them (for production)
*/ */
public static function enable(?int $errorReportingLevel = null, bool $displayErrors = true): void public static function enable(int|null $errorReportingLevel = null, bool $displayErrors = true): void
{ {
if (static::$enabled) if (static::$enabled)
{ {
@ -58,7 +58,6 @@ class debug
if ('cli' !== php_sapi_name()) if ('cli' !== php_sapi_name())
{ {
ini_set('display_errors', 0); ini_set('display_errors', 0);
ErrorHandler::register();
} }
else if ($displayErrors && (!ini_get('log_errors') || ini_get('error_log'))) else if ($displayErrors && (!ini_get('log_errors') || ini_get('error_log')))
{ {
@ -68,13 +67,13 @@ class debug
if ($displayErrors) if ($displayErrors)
{ {
error_handler::register(new error_handler(new BufferingLogger())); error_handler::register(new error_handler(new BufferingLogger(), true));
} }
else else
{ {
error_handler::register()->throwAt(0, true); error_handler::register()->throwAt(0, true);
} }
DebugHandler::enable(); DebugClassLoader::enable();
} }
} }