From 9bdecb71dda8cde4064a7c7ae05a6088884d0945 Mon Sep 17 00:00:00 2001 From: erikn69 Date: Tue, 11 Mar 2025 12:42:21 -0500 Subject: [PATCH 1/2] Preserve laravel error handler --- src/LaravelDebugbar.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/LaravelDebugbar.php b/src/LaravelDebugbar.php index ca45dd68..2f82f100 100644 --- a/src/LaravelDebugbar.php +++ b/src/LaravelDebugbar.php @@ -101,6 +101,13 @@ class LaravelDebugbar extends DebugBar */ protected $is_lumen = false; + /** + * Laravel default error handler + * + * @var callable|null + */ + protected $prevErrorHandler = null; + protected ?string $editorTemplateLink = null; protected array $remoteServerReplacements = []; protected bool $responseIsModified = false; @@ -173,7 +180,7 @@ public function boot() // Set custom error handler if ($config->get('debugbar.error_handler', false)) { - set_error_handler([$this, 'handleError']); + $this->prevErrorHandler = set_error_handler([$this, 'handleError']); } $this->selectStorage($this); @@ -645,16 +652,13 @@ public function addCollector(DataCollectorInterface $collector) */ public function handleError($level, $message, $file = '', $line = 0, $context = []) { - $exception = new \ErrorException($message, 0, $level, $file, $line); - if (error_reporting() & $level) { - throw $exception; - } - - $this->addThrowable($exception); + $this->addThrowable(new \ErrorException($message, 0, $level, $file, $line)); if ($this->hasCollector('messages')) { $file = $file ? ' on ' . $this['messages']->normalizeFilePath($file) . ":{$line}" : ''; $this['messages']->addMessage($message . $file, 'deprecation'); } + + return call_user_func($this->prevErrorHandler, $level, $message, $file, $line, $context); } /** From d0f6924a4ff108c5eb594a6a7f51355af67e690b Mon Sep 17 00:00:00 2001 From: erikn69 Date: Mon, 17 Mar 2025 11:24:13 -0500 Subject: [PATCH 2/2] Return if there isnt previus handler --- src/LaravelDebugbar.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/LaravelDebugbar.php b/src/LaravelDebugbar.php index 2f82f100..c8c8c3c8 100644 --- a/src/LaravelDebugbar.php +++ b/src/LaravelDebugbar.php @@ -658,6 +658,10 @@ public function handleError($level, $message, $file = '', $line = 0, $context = $this['messages']->addMessage($message . $file, 'deprecation'); } + if (! $this->prevErrorHandler) { + return; + } + return call_user_func($this->prevErrorHandler, $level, $message, $file, $line, $context); }