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 1b5c6f8
Show file tree
Hide file tree
Showing 2 changed files with 10 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
7 changes: 7 additions & 0 deletions tests/phpt/error_handler_respects_error_reporting.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,15 @@ $client->getOptions()->setCaptureSilencedErrors(false);
echo 'Triggering silenced error' . PHP_EOL;

@$b++;

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

?>
--EXPECT--
Triggering silenced error
Transport called
Triggering silenced error
Triggering silenced by error_reporting error

0 comments on commit 1b5c6f8

Please sign in to comment.