vendor/sentry/sentry-symfony/src/EventListener/SubRequestListener.php line 28

Open in your IDE?
  1. <?php
  2. namespace Sentry\SentryBundle\EventListener;
  3. use Sentry\SentrySdk;
  4. use Symfony\Component\HttpKernel\Event\FinishRequestEvent;
  5. use Symfony\Component\HttpKernel\Event\GetResponseEvent;
  6. use Symfony\Component\HttpKernel\Event\RequestEvent;
  7. use Symfony\Component\HttpKernel\Kernel;
  8. if (Kernel::MAJOR_VERSION >= 5) {
  9.     if (! class_exists(SubRequestListenerRequestEvent::class, false)) {
  10.         class_alias(RequestEvent::class, SubRequestListenerRequestEvent::class);
  11.     }
  12. } else {
  13.     if (! class_exists(SubRequestListenerRequestEvent::class, false)) {
  14.         class_alias(GetResponseEvent::class, SubRequestListenerRequestEvent::class);
  15.     }
  16. }
  17. final class SubRequestListener
  18. {
  19.     /**
  20.      * Pushes a new {@see Scope} for each SubRequest
  21.      *
  22.      * @param SubRequestListenerRequestEvent $event
  23.      */
  24.     public function onKernelRequest(SubRequestListenerRequestEvent $event): void
  25.     {
  26.         if ($event->isMasterRequest()) {
  27.             return;
  28.         }
  29.         SentrySdk::getCurrentHub()->pushScope();
  30.     }
  31.     /**
  32.      * Pops a {@see Scope} for each finished SubRequest
  33.      *
  34.      * @param FinishRequestEvent $event
  35.      */
  36.     public function onKernelFinishRequest(FinishRequestEvent $event): void
  37.     {
  38.         if ($event->isMasterRequest()) {
  39.             return;
  40.         }
  41.         SentrySdk::getCurrentHub()->popScope();
  42.     }
  43. }