From 9f9f62889b1db98ecc0d97b0e9eda643595bd87d Mon Sep 17 00:00:00 2001 From: Steve Oliver Date: Sun, 30 Jul 2023 10:06:35 -0700 Subject: [PATCH 1/2] Tag span with laravel_action only when route exists This prevents `TypeError: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given` when trying to tag a request for a route that does not exist. --- src/Middleware/TraceRequests.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Middleware/TraceRequests.php b/src/Middleware/TraceRequests.php index fc2597e..b99d5f3 100644 --- a/src/Middleware/TraceRequests.php +++ b/src/Middleware/TraceRequests.php @@ -106,8 +106,10 @@ protected function tagRequestData(Span $span, Request $request): void */ protected function tagResponseData(Span $span, Request $request, $response): void { - if (method_exists($request->route(), 'getActionName')) { - $span->tag('laravel_action', $request->route()->getActionName()); + if ($route = $request->route()) { + if (method_exists($route, 'getActionName')) { + $span->tag('laravel_action', $route->getActionName()); + } } $span->tag('response_status', strval($response->getStatusCode())); From 0fcefc67bdf458d724323e1ad9d641849bea9c9d Mon Sep 17 00:00:00 2001 From: Steve Oliver Date: Sun, 30 Jul 2023 10:16:45 -0700 Subject: [PATCH 2/2] Check $route before method_exists($route, 'uri') --- src/Middleware/TraceRequests.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Middleware/TraceRequests.php b/src/Middleware/TraceRequests.php index b99d5f3..2928ec5 100644 --- a/src/Middleware/TraceRequests.php +++ b/src/Middleware/TraceRequests.php @@ -237,7 +237,7 @@ protected function hideSensitiveInput(Collection $input): Collection */ protected function isLaravelRoute($route): bool { - return method_exists($route, 'uri'); + return $route && method_exists($route, 'uri'); } /**