Skip to content

Commit 26c6041

Browse files
committed
Fix #1000: Respect error_reporting
1 parent f7645df commit 26c6041

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/ErrorHandler.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -363,10 +363,10 @@ public function addExceptionHandlerListener(callable $listener): void
363363
*/
364364
private function handleError(int $level, string $message, string $file, int $line, ?array $errcontext = []): bool
365365
{
366-
if (0 === error_reporting()) {
367-
$errorAsException = new SilencedErrorException(self::ERROR_LEVELS_DESCRIPTION[$level] . ': ' . $message, 0, $level, $file, $line);
368-
} else {
366+
if ($level & error_reporting()) {
369367
$errorAsException = new \ErrorException(self::ERROR_LEVELS_DESCRIPTION[$level] . ': ' . $message, 0, $level, $file, $line);
368+
} else {
369+
$errorAsException = new SilencedErrorException(self::ERROR_LEVELS_DESCRIPTION[$level] . ': ' . $message, 0, $level, $file, $line);
370370
}
371371

372372
$backtrace = $this->cleanBacktraceFromErrorHandlerFrames($errorAsException->getTrace(), $errorAsException->getFile(), $errorAsException->getLine());

tests/phpt/error_handler_respects_error_reporting.phpt

+7
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,15 @@ $client->getOptions()->setCaptureSilencedErrors(false);
5151
echo 'Triggering silenced error' . PHP_EOL;
5252

5353
@$b++;
54+
55+
$errorReporting = error_reporting(E_ALL & ~E_WARNING);
56+
include 'foo.bar';
57+
echo 'Triggering silenced by error_reporting error' . PHP_EOL;
58+
error_reporting($errorReporting);
59+
5460
?>
5561
--EXPECT--
5662
Triggering silenced error
5763
Transport called
5864
Triggering silenced error
65+
Triggering silenced by error_reporting error

0 commit comments

Comments
 (0)