diff --git a/phpBB/common.php b/phpBB/common.php index ec6ff6805e..beca175e93 100644 --- a/phpBB/common.php +++ b/phpBB/common.php @@ -97,14 +97,7 @@ require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx); // Registered before building the container so the development environment stay capable of intercepting // the container builder exceptions. -if (PHPBB_ENVIRONMENT === 'development') -{ - \phpbb\debug\debug::enable(); -} -else -{ - set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler'); -} +\phpbb\debug\debug::enable(null, PHPBB_ENVIRONMENT === 'development'); $phpbb_class_loader_ext = new \phpbb\class_loader('\\', "{$phpbb_root_path}ext/", $phpEx); $phpbb_class_loader_ext->register(); diff --git a/phpBB/phpbb/debug/debug.php b/phpBB/phpbb/debug/debug.php index 488ad6356a..bc7b5e22da 100644 --- a/phpBB/phpbb/debug/debug.php +++ b/phpBB/phpbb/debug/debug.php @@ -65,15 +65,8 @@ class debug ini_set('display_errors', 1); } - if ($displayErrors) - { - error_handler::register(new error_handler(new BufferingLogger(), true)); - } - else - { - error_handler::register()->throwAt(0, true); - } - DebugClassLoader::enable(); + + error_handler::register(new error_handler(new BufferingLogger(), $displayErrors)); } } diff --git a/phpBB/phpbb/debug/error_handler.php b/phpBB/phpbb/debug/error_handler.php index 2356045b4d..39949d47bd 100644 --- a/phpBB/phpbb/debug/error_handler.php +++ b/phpBB/phpbb/debug/error_handler.php @@ -13,6 +13,7 @@ namespace phpbb\debug; +use Symfony\Component\ErrorHandler\BufferingLogger; use Symfony\Component\ErrorHandler\ErrorHandler; /** @@ -20,16 +21,21 @@ use Symfony\Component\ErrorHandler\ErrorHandler; */ class error_handler extends ErrorHandler { + public function __construct(BufferingLogger $bootstrappingLogger = null, private bool $debug = false) + { + parent::__construct($bootstrappingLogger, $debug); + } + /** * @psalm-suppress MethodSignatureMismatch */ public function handleError(int $type, string $message, string $file, int $line): bool { - if ($type === E_USER_WARNING || $type === E_USER_NOTICE) + if (!$this->debug) { $handler = defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler'; - $handler($type, $message, $file, $line); + return $handler($type, $message, $file, $line); } return parent::handleError($type, $message, $file, $line);