Skip to content

Commit

Permalink
Fix #1000: Respect error_reporting
Browse files Browse the repository at this point in the history
  • Loading branch information
PatchRanger committed Apr 17, 2020
1 parent f7645df commit bc0ec22
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/ErrorHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -363,10 +363,10 @@ public function addExceptionHandlerListener(callable $listener): void
*/
private function handleError(int $level, string $message, string $file, int $line, ?array $errcontext = []): bool
{
if (0 === error_reporting()) {
$errorAsException = new SilencedErrorException(self::ERROR_LEVELS_DESCRIPTION[$level] . ': ' . $message, 0, $level, $file, $line);
} else {
if ($level & error_reporting()) {
$errorAsException = new \ErrorException(self::ERROR_LEVELS_DESCRIPTION[$level] . ': ' . $message, 0, $level, $file, $line);
} else {
$errorAsException = new SilencedErrorException(self::ERROR_LEVELS_DESCRIPTION[$level] . ': ' . $message, 0, $level, $file, $line);
}

$backtrace = $this->cleanBacktraceFromErrorHandlerFrames($errorAsException->getTrace(), $errorAsException->getFile(), $errorAsException->getLine());
Expand Down
6 changes: 6 additions & 0 deletions tests/phpt/error_handler_respects_error_reporting.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@ echo 'Triggering silenced error' . PHP_EOL;

@$a++;

$errorReporting = error_reporting(E_ALL & ~E_WARNING);
echo 'Triggering silenced by error_reporting error' . PHP_EOL;
include 'foo.bar';
error_reporting($errorReporting);

$client->getOptions()->setCaptureSilencedErrors(false);

echo 'Triggering silenced error' . PHP_EOL;
Expand All @@ -55,4 +60,5 @@ echo 'Triggering silenced error' . PHP_EOL;
--EXPECT--
Triggering silenced error
Transport called
Triggering silenced by error_reporting error
Triggering silenced error

0 comments on commit bc0ec22

Please sign in to comment.