vendor/sentry/sentry-symfony/src/EventListener/AbstractTracingRequestListener.php line 37

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Sentry\SentryBundle\EventListener;
  4. use Sentry\State\HubInterface;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Route;
  8. abstract class AbstractTracingRequestListener
  9. {
  10.     /**
  11.      * @var HubInterface The current hub
  12.      */
  13.     protected $hub;
  14.     /**
  15.      * Constructor.
  16.      *
  17.      * @param HubInterface $hub The current hub
  18.      */
  19.     public function __construct(HubInterface $hub)
  20.     {
  21.         $this->hub $hub;
  22.     }
  23.     /**
  24.      * This method is called once a response for the current HTTP request is
  25.      * created, but before it is sent off to the client. Its use is mainly for
  26.      * gathering information like the HTTP status code and attaching them as
  27.      * tags of the span/transaction.
  28.      *
  29.      * @param RequestListenerResponseEvent $event The event
  30.      */
  31.     public function handleKernelResponseEvent(RequestListenerResponseEvent $event): void
  32.     {
  33.         /** @var Response $response */
  34.         $response $event->getResponse();
  35.         $span $this->hub->getSpan();
  36.         if (null === $span) {
  37.             return;
  38.         }
  39.         $span->setHttpStatus($response->getStatusCode());
  40.     }
  41.     /**
  42.      * Gets the name of the route or fallback to the controller FQCN if the
  43.      * route is anonymous (e.g. a subrequest).
  44.      *
  45.      * @param Request $request The HTTP request
  46.      */
  47.     protected function getRouteName(Request $request): string
  48.     {
  49.         $route $request->attributes->get('_route');
  50.         if ($route instanceof Route) {
  51.             $route $route->getPath();
  52.         }
  53.         if (null === $route) {
  54.             $route $request->attributes->get('_controller');
  55.             if (\is_array($route) && \is_callable($routetrue)) {
  56.                 $route sprintf('%s::%s', \is_object($route[0]) ? get_debug_type($route[0]) : $route[0], $route[1]);
  57.             }
  58.         }
  59.         return \is_string($route) ? $route '<unknown>';
  60.     }
  61. }