From 365098458c45fec66ebfc1ef9c3a802df65d6320 Mon Sep 17 00:00:00 2001 From: Alex Bouma Date: Wed, 12 Oct 2022 09:56:54 +0200 Subject: [PATCH] Fix command input handling --- src/Sentry/Laravel/EventHandler.php | 30 ++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/Sentry/Laravel/EventHandler.php b/src/Sentry/Laravel/EventHandler.php index f9f32bfe..42950fdf 100644 --- a/src/Sentry/Laravel/EventHandler.php +++ b/src/Sentry/Laravel/EventHandler.php @@ -27,6 +27,9 @@ use Sentry\Breadcrumb; use Sentry\SentrySdk; use Sentry\State\Scope; +use Symfony\Component\Console\Input\ArgvInput; +use Symfony\Component\Console\Input\ArrayInput; +use Symfony\Component\Console\Input\InputInterface; class EventHandler { @@ -568,9 +571,9 @@ protected function commandStartingHandler(CommandStarting $event) Breadcrumb::TYPE_DEFAULT, 'artisan.command', 'Starting Artisan command: ' . $event->command, - method_exists($event->input, '__toString') ? [ - 'input' => (string)$event->input, - ] : [] + [ + 'input' => $this->extractCommandInput($event->input), + ] )); } } @@ -588,11 +591,10 @@ protected function commandFinishedHandler(CommandFinished $event) Breadcrumb::TYPE_DEFAULT, 'artisan.command', 'Finished Artisan command: ' . $event->command, - array_merge([ + [ 'exit' => $event->exitCode, - ], method_exists($event->input, '__toString') ? [ - 'input' => (string)$event->input, - ] : []) + 'input' => $this->extractCommandInput($event->input), + ], )); } @@ -604,6 +606,20 @@ protected function commandFinishedHandler(CommandFinished $event) Integration::flushEvents(); } + /** @return array|string|null */ + private function extractCommandInput(InputInterface $input) + { + $extracted = null; + + if ($input instanceof ArgvInput) { + $extracted = (string)$input; + } elseif ($input instanceof ArrayInput) { + $extracted = $input->getArguments(); + } + + return $extracted; + } + protected function octaneRequestReceivedHandler(Octane\RequestReceived $event): void { $this->prepareScopeForOctane();