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

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.     class_alias(RequestEvent::class, SubRequestListenerRequestEvent::class);
  10. } else {
  11.     class_alias(GetResponseEvent::class, SubRequestListenerRequestEvent::class);
  12. }
  13. final class SubRequestListener
  14. {
  15.     /**
  16.      * Pushes a new {@see Scope} for each SubRequest
  17.      *
  18.      * @param SubRequestListenerRequestEvent $event
  19.      */
  20.     public function onKernelRequest(SubRequestListenerRequestEvent $event): void
  21.     {
  22.         if ($event->isMasterRequest()) {
  23.             return;
  24.         }
  25.         SentrySdk::getCurrentHub()->pushScope();
  26.     }
  27.     /**
  28.      * Pops a {@see Scope} for each finished SubRequest
  29.      *
  30.      * @param FinishRequestEvent $event
  31.      */
  32.     public function onKernelFinishRequest(FinishRequestEvent $event): void
  33.     {
  34.         if ($event->isMasterRequest()) {
  35.             return;
  36.         }
  37.         SentrySdk::getCurrentHub()->popScope();
  38.     }
  39. }