From 1c2a0bf065e9d33e2cda460751a91f0444d940e8 Mon Sep 17 00:00:00 2001 From: Chris Doehring Date: Fri, 27 Nov 2020 01:18:43 +0100 Subject: [PATCH 1/2] Migrate the error handling for the @ operator to the latest php 8 change --- src/ErrorHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ErrorHandler.php b/src/ErrorHandler.php index 95493f447d..6e37b29307 100644 --- a/src/ErrorHandler.php +++ b/src/ErrorHandler.php @@ -265,7 +265,7 @@ public function addExceptionHandlerListener(callable $listener): void */ private function handleError(int $level, string $message, string $file, int $line, ?array $errcontext = []): bool { - if (0 === error_reporting()) { + if (!(error_reporting() & $level)) { $errorAsException = new SilencedErrorException(self::ERROR_LEVELS_DESCRIPTION[$level] . ': ' . $message, 0, $level, $file, $line); } else { $errorAsException = new \ErrorException(self::ERROR_LEVELS_DESCRIPTION[$level] . ': ' . $message, 0, $level, $file, $line); From 0469c69e6679b2082fcaf17e17237bb9242823ed Mon Sep 17 00:00:00 2001 From: Chris Doehring Date: Fri, 27 Nov 2020 19:18:50 +0100 Subject: [PATCH 2/2] Adjust bitmask comparison and extend CHANGELOG.md --- CHANGELOG.md | 1 + src/ErrorHandler.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9e8364058..bc79432188 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased - PHP 8 support +- Change the error handling for silenced fatal errors using `@` to use a mask check in order to be php 8 compatible (#1141) ## 3.0.3 (2020-10-12) diff --git a/src/ErrorHandler.php b/src/ErrorHandler.php index 6e37b29307..af00bf53d5 100644 --- a/src/ErrorHandler.php +++ b/src/ErrorHandler.php @@ -265,7 +265,7 @@ public function addExceptionHandlerListener(callable $listener): void */ private function handleError(int $level, string $message, string $file, int $line, ?array $errcontext = []): bool { - if (!(error_reporting() & $level)) { + if (0 === (error_reporting() & $level)) { $errorAsException = new SilencedErrorException(self::ERROR_LEVELS_DESCRIPTION[$level] . ': ' . $message, 0, $level, $file, $line); } else { $errorAsException = new \ErrorException(self::ERROR_LEVELS_DESCRIPTION[$level] . ': ' . $message, 0, $level, $file, $line);