diff --git a/CHANGELOG.md b/CHANGELOG.md index 1344cb26..329aeac9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## Unreleased - - ... + +## 3.4.1 (2020-01-24) + - Fix issue due to usage of `class_alias` to fix deprecations, which could break BC layers of third party packages (#309, thanks to @scheb) ## 3.4.0 (2020-01-20) - Add support for `sentry/sentry` 2.3 (#298) diff --git a/src/EventListener/RequestListener.php b/src/EventListener/RequestListener.php index 0e81b68f..c7a784a6 100644 --- a/src/EventListener/RequestListener.php +++ b/src/EventListener/RequestListener.php @@ -9,15 +9,24 @@ use Symfony\Component\HttpKernel\Event\FilterControllerEvent; use Symfony\Component\HttpKernel\Event\GetResponseEvent; use Symfony\Component\HttpKernel\Event\RequestEvent; +use Symfony\Component\HttpKernel\Kernel; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Security\Core\User\UserInterface; -if (! class_exists(RequestEvent::class)) { - class_alias(GetResponseEvent::class, RequestEvent::class); -} - -if (! class_exists(ControllerEvent::class)) { - class_alias(FilterControllerEvent::class, ControllerEvent::class); +if (Kernel::MAJOR_VERSION >= 5) { + if (! class_exists('Sentry\SentryBundle\EventListener\UserContextRequestEvent')) { + class_alias(RequestEvent::class, 'Sentry\SentryBundle\EventListener\UserContextRequestEvent'); + } + if (! class_exists('Sentry\SentryBundle\EventListener\UserContextControllerEvent')) { + class_alias(ControllerEvent::class, 'Sentry\SentryBundle\EventListener\UserContextControllerEvent'); + } +} else { + if (! class_exists('Sentry\SentryBundle\EventListener\UserContextRequestEvent')) { + class_alias(GetResponseEvent::class, 'Sentry\SentryBundle\EventListener\UserContextRequestEvent'); + } + if (! class_exists('Sentry\SentryBundle\EventListener\UserContextControllerEvent')) { + class_alias(FilterControllerEvent::class, 'Sentry\SentryBundle\EventListener\UserContextControllerEvent'); + } } /** @@ -48,9 +57,9 @@ public function __construct( /** * Set the username from the security context by listening on core.request * - * @param RequestEvent $event + * @param UserContextRequestEvent $event */ - public function onKernelRequest(RequestEvent $event): void + public function onKernelRequest(UserContextRequestEvent $event): void { if (! $event->isMasterRequest()) { return; @@ -85,7 +94,7 @@ public function onKernelRequest(RequestEvent $event): void }); } - public function onKernelController(ControllerEvent $event): void + public function onKernelController(UserContextControllerEvent $event): void { if (! $event->isMasterRequest()) { return; diff --git a/src/EventListener/SubRequestListener.php b/src/EventListener/SubRequestListener.php index 87970ac1..5fd4fe16 100644 --- a/src/EventListener/SubRequestListener.php +++ b/src/EventListener/SubRequestListener.php @@ -6,9 +6,16 @@ use Symfony\Component\HttpKernel\Event\FinishRequestEvent; use Symfony\Component\HttpKernel\Event\GetResponseEvent; use Symfony\Component\HttpKernel\Event\RequestEvent; +use Symfony\Component\HttpKernel\Kernel; -if (! class_exists(RequestEvent::class)) { - class_alias(GetResponseEvent::class, RequestEvent::class); +if (Kernel::MAJOR_VERSION >= 5) { + if (! class_exists('Sentry\SentryBundle\EventListener\UserContextRequestEvent')) { + class_alias(RequestEvent::class, 'Sentry\SentryBundle\EventListener\UserContextRequestEvent'); + } +} else { + if (! class_exists('Sentry\SentryBundle\EventListener\UserContextRequestEvent')) { + class_alias(GetResponseEvent::class, 'Sentry\SentryBundle\EventListener\UserCon textRequestEvent'); + } } final class SubRequestListener @@ -16,9 +23,9 @@ final class SubRequestListener /** * Pushes a new {@see Scope} for each SubRequest * - * @param RequestEvent $event + * @param UserContextRequestEvent $event */ - public function onKernelRequest(RequestEvent $event): void + public function onKernelRequest(UserContextRequestEvent $event): void { if ($event->isMasterRequest()) { return;