From 180cf6479968d1d72d38995c2ab5eeda9a5dc09f Mon Sep 17 00:00:00 2001 From: Stefano Arlandini Date: Sun, 10 Jan 2021 22:08:31 +0100 Subject: [PATCH 1/3] Remove the listener priorities configuration options --- .github/workflows/tests.yaml | 2 +- CHANGELOG.md | 15 +- UPGRADE-4.0.md | 7 +- composer.json | 1 + phpstan-baseline.neon | 4 +- src/DependencyInjection/Configuration.php | 22 +-- src/DependencyInjection/SentryExtension.php | 4 - src/EventListener/RequestListener.php | 4 +- src/Resources/config/schema/sentry-1.0.xsd | 11 -- src/Resources/config/services.xml | 20 +-- .../DependencyInjection/ConfigurationTest.php | 11 +- ...e_command_listener_overridden_priority.php | 14 -- .../error_listener_overridden_priority.php | 12 -- ...messenger_listener_overridden_priority.php | 12 -- .../request_listener_overridden_priority.php | 12 -- ...b_request_listener_overridden_priority.php | 12 -- ...e_command_listener_overridden_priority.xml | 12 -- .../error_listener_overridden_priority.xml | 12 -- ...messenger_listener_overridden_priority.xml | 12 -- .../request_listener_overridden_priority.xml | 12 -- ...b_request_listener_overridden_priority.xml | 12 -- ...e_command_listener_overridden_priority.yml | 5 - .../error_listener_overridden_priority.yml | 3 - ...messenger_listener_overridden_priority.yml | 3 - .../request_listener_overridden_priority.yml | 3 - ...b_request_listener_overridden_priority.yml | 3 - .../SentryExtensionTest.php | 146 +++--------------- tests/EventListener/RequestListenerTest.php | 4 +- 28 files changed, 52 insertions(+), 338 deletions(-) delete mode 100644 tests/DependencyInjection/Fixtures/php/console_command_listener_overridden_priority.php delete mode 100644 tests/DependencyInjection/Fixtures/php/error_listener_overridden_priority.php delete mode 100644 tests/DependencyInjection/Fixtures/php/messenger_listener_overridden_priority.php delete mode 100644 tests/DependencyInjection/Fixtures/php/request_listener_overridden_priority.php delete mode 100644 tests/DependencyInjection/Fixtures/php/sub_request_listener_overridden_priority.php delete mode 100644 tests/DependencyInjection/Fixtures/xml/console_command_listener_overridden_priority.xml delete mode 100644 tests/DependencyInjection/Fixtures/xml/error_listener_overridden_priority.xml delete mode 100644 tests/DependencyInjection/Fixtures/xml/messenger_listener_overridden_priority.xml delete mode 100644 tests/DependencyInjection/Fixtures/xml/request_listener_overridden_priority.xml delete mode 100644 tests/DependencyInjection/Fixtures/xml/sub_request_listener_overridden_priority.xml delete mode 100644 tests/DependencyInjection/Fixtures/yml/console_command_listener_overridden_priority.yml delete mode 100644 tests/DependencyInjection/Fixtures/yml/error_listener_overridden_priority.yml delete mode 100644 tests/DependencyInjection/Fixtures/yml/messenger_listener_overridden_priority.yml delete mode 100644 tests/DependencyInjection/Fixtures/yml/request_listener_overridden_priority.yml delete mode 100644 tests/DependencyInjection/Fixtures/yml/sub_request_listener_overridden_priority.yml diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 3582ee66..7b78eb5a 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -53,7 +53,7 @@ jobs: php-version: ${{ matrix.php }} coverage: xdebug - run: | - sed -ri '/symfony\/(monolog-bundle|phpunit-bridge|messenger|psr-http-message-bridge)/! s/"symfony\/(.+)": "(.+)"/"symfony\/\1": "'${{ matrix.symfony_constraint }}'"/' composer.json; + sed -ri '/symfony\/(monolog-bundle|phpunit-bridge|messenger|psr-http-message-bridge|polyfill-php80)/! s/"symfony\/(.+)": "(.+)"/"symfony\/\1": "'${{ matrix.symfony_constraint }}'"/' composer.json; if: matrix.symfony_constraint - run: composer remove --dev symfony/messenger --no-update if: matrix.symfony_constraint == '3.4.*' || matrix.composer_option == '--prefer-lowest' diff --git a/CHANGELOG.md b/CHANGELOG.md index 358dbd2d..73a97b34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,18 +3,19 @@ ## Unreleased - Enable back all error listeners from base SDK integration (#322) -- Added `options.traces_sampler` and `options.traces_sample_rate` configuration options (#385) -- [BC BREAK] Removed the `options.project_root` configuration option. Instead of setting it, use a combination of `options.in_app_include` and `options.in_app_exclude` (#385) -- [BC BREAK] Removed the `options.excluded_exceptions` configuration option. Instead of setting it, configure the `IgnoreErrorsIntegration` integration (#385) -- [BC BREAK] Refactorized the `ConsoleCommandListener`, `ErrorListener`, `RequestListener` and `SubRequestListener` event listeners (#387) +- Add `options.traces_sampler` and `options.traces_sample_rate` configuration options (#385) +- [BC BREAK] Remove the `options.project_root` configuration option. Instead of setting it, use a combination of `options.in_app_include` and `options.in_app_exclude` (#385) +- [BC BREAK] Remove the `options.excluded_exceptions` configuration option. Instead of setting it, configure the `IgnoreErrorsIntegration` integration (#385) +- [BC BREAK] Refactorize the `ConsoleCommandListener`, `ErrorListener`, `RequestListener` and `SubRequestListener` event listeners (#387) - Registered the CLI commands as lazy services (#373) -- [BC BREAK] Refactorized the configuration tree and the definitions of some container services (#401) +- [BC BREAK] Refactorize the configuration tree and the definitions of some container services (#401) - Support the XML format for the bundle configuration (#401) - PHP 8 support (#399, thanks to @Yozhef) - Retrieve the request from the `RequestStack` when using the `RequestIntegration` integration (#361) - Reorganize the folder structure and change CS standard (#405) -- [BC BREAK] Removed the `monolog` configuration option. Instead, register the service manually (#406) - +- [BC BREAK] Remove the `monolog` configuration option. Instead, register the service manually (#406) +- [BC BREAK] Remove the `listener_priorities` configuration option. Instead, use a compiler pass to change the priority of the listeners (#) + ## 3.5.3 (2020-10-13) - Refactors and fixes class aliases for more robustness (#315 #359, thanks to @guilliamxavier) diff --git a/UPGRADE-4.0.md b/UPGRADE-4.0.md index 300402aa..5ef43587 100644 --- a/UPGRADE-4.0.md +++ b/UPGRADE-4.0.md @@ -11,6 +11,7 @@ - Renamed the `SubRequestListener::onKernelRequest` method to `SubRequestListener::handleKernelRequestEvent`. - Renamed the `SubRequestListener::onKernelFinishRequest` method to `SubRequestListener::handleKernelFinishRequestEvent`. - Removed the `Sentry\FlushableClientInterface` service alias. +- Removed the `sentry.listener_priorities` configuration option. - Removed the `sentry.options.excluded_exceptions` configuration option. Before: @@ -38,9 +39,9 @@ - RuntimeException ``` -- Changed the default value of the `sentry.listener_priorities.console_error` configuration option to `-64`. -- Changed the default value of the `sentry.listener_priorities.console` configuration option to `128`. -- Changed the default value of the `sentry.listener_priorities.worker_error` configuration option to `50`. +- Changed the priority of the `ConsoleCommandListener::handleConsoleErrorEvent` listener to `-64`. +- Changed the priority of the `ConsoleCommandListener::::handleConsoleCommandEvent` listener to `128`. +- Changed the priority of the `MessengerListener::handleWorkerMessageFailedEvent` listener to `50`. - Changed the type of the `sentry.options.before_send` configuration option from `scalar` to `string`. The value must always be the name of the container service to call without the `@` prefix. Before diff --git a/composer.json b/composer.json index dff85cdf..d3c42da5 100644 --- a/composer.json +++ b/composer.json @@ -28,6 +28,7 @@ "symfony/dependency-injection": "^3.4.43||^4.4.11||^5.0.11", "symfony/event-dispatcher": "^3.4.43||^4.4.11||^5.0.11", "symfony/http-kernel": "^3.4.43||^4.4.11||^5.0.11", + "symfony/polyfill-php80": "^1.22", "symfony/psr-http-message-bridge": "^2.0", "symfony/security-core": "^3.4.43||^4.4.11||^5.0.11" }, diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index dbeee1a2..f1ea7310 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -6,8 +6,8 @@ parameters: path: src/DependencyInjection/Configuration.php - - message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeParentInterface\\:\\:arrayNode\\(\\)\\.$#" - count: 2 + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeParentInterface\\:\\:booleanNode\\(\\)\\.$#" + count: 1 path: src/DependencyInjection/Configuration.php - diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php index 5b6f4b31..69f94459 100644 --- a/src/DependencyInjection/Configuration.php +++ b/src/DependencyInjection/Configuration.php @@ -36,6 +36,7 @@ public function getConfigTreeBuilder(): TreeBuilder ->thenUnset() ->end() ->end() + ->booleanNode('register_error_listener')->defaultTrue()->end() ->arrayNode('options') ->addDefaultsIfNotSet() ->fixXmlConfig('integration') @@ -127,7 +128,6 @@ public function getConfigTreeBuilder(): TreeBuilder ; $this->addMessengerSection($rootNode); - $this->addListenerSection($rootNode); return $treeBuilder; } @@ -144,24 +144,4 @@ private function addMessengerSection(ArrayNodeDefinition $rootNode): void ->end() ->end(); } - - private function addListenerSection(ArrayNodeDefinition $rootNode): void - { - $rootNode - ->children() - ->booleanNode('register_error_listener')->defaultTrue()->end() - ->arrayNode('listener_priorities') - ->addDefaultsIfNotSet() - ->children() - ->scalarNode('request')->defaultValue(1)->end() - ->scalarNode('sub_request')->defaultValue(1)->end() - ->scalarNode('console')->defaultValue(128)->end() - ->scalarNode('request_error')->defaultValue(128)->end() - ->scalarNode('console_error')->defaultValue(-64)->end() - ->scalarNode('console_terminate')->defaultValue(-64)->end() - ->scalarNode('worker_error')->defaultValue(50)->end() - ->end() - ->end() - ->end(); - } } diff --git a/src/DependencyInjection/SentryExtension.php b/src/DependencyInjection/SentryExtension.php index f28058e5..aa5234c1 100644 --- a/src/DependencyInjection/SentryExtension.php +++ b/src/DependencyInjection/SentryExtension.php @@ -52,10 +52,6 @@ protected function loadInternal(array $mergedConfig, ContainerBuilder $container $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.xml'); - foreach ($mergedConfig['listener_priorities'] as $key => $priority) { - $container->setParameter('sentry.listener_priorities.' . $key, $priority); - } - $this->registerConfiguration($container, $mergedConfig); $this->registerErrorListenerConfiguration($container, $mergedConfig); $this->registerMessengerListenerConfiguration($container, $mergedConfig['messenger']); diff --git a/src/EventListener/RequestListener.php b/src/EventListener/RequestListener.php index 5a5b085b..13cb397c 100644 --- a/src/EventListener/RequestListener.php +++ b/src/EventListener/RequestListener.php @@ -58,7 +58,7 @@ public function handleKernelRequestEvent(RequestListenerRequestEvent $event): vo $token = $this->tokenStorage->getToken(); } - if (null !== $token && $token->isAuthenticated() && $token->getUser()) { + if (null !== $token && $token->isAuthenticated() && null !== $token->getUser()) { $userData->setUsername($this->getUsername($token->getUser())); } @@ -91,7 +91,7 @@ public function handleKernelControllerEvent(RequestListenerControllerEvent $even } /** - * @param UserInterface | object | string $user + * @param UserInterface|object|string $user */ private function getUsername($user): ?string { diff --git a/src/Resources/config/schema/sentry-1.0.xsd b/src/Resources/config/schema/sentry-1.0.xsd index 76367664..66ba3d2b 100644 --- a/src/Resources/config/schema/sentry-1.0.xsd +++ b/src/Resources/config/schema/sentry-1.0.xsd @@ -11,7 +11,6 @@ - @@ -79,14 +78,4 @@ - - - - - - - - - - diff --git a/src/Resources/config/services.xml b/src/Resources/config/services.xml index b0c1998c3..b3df18e2 100644 --- a/src/Resources/config/services.xml +++ b/src/Resources/config/services.xml @@ -26,37 +26,37 @@ - - - + + + - + - - + + - - + + - - + + diff --git a/tests/DependencyInjection/ConfigurationTest.php b/tests/DependencyInjection/ConfigurationTest.php index a09d3545..3aa3424e 100644 --- a/tests/DependencyInjection/ConfigurationTest.php +++ b/tests/DependencyInjection/ConfigurationTest.php @@ -16,6 +16,7 @@ final class ConfigurationTest extends TestCase public function testProcessConfigurationWithDefaultConfiguration(): void { $expectedBundleDefaultConfig = [ + 'register_error_listener' => true, 'options' => [ 'integrations' => [], 'prefixes' => [], @@ -34,16 +35,6 @@ public function testProcessConfigurationWithDefaultConfiguration(): void 'enabled' => interface_exists(MessageBusInterface::class), 'capture_soft_fails' => true, ], - 'register_error_listener' => true, - 'listener_priorities' => [ - 'request' => 1, - 'sub_request' => 1, - 'console' => 128, - 'request_error' => 128, - 'console_error' => -64, - 'console_terminate' => -64, - 'worker_error' => 50, - ], ]; $this->assertSame($expectedBundleDefaultConfig, $this->processConfiguration([])); diff --git a/tests/DependencyInjection/Fixtures/php/console_command_listener_overridden_priority.php b/tests/DependencyInjection/Fixtures/php/console_command_listener_overridden_priority.php deleted file mode 100644 index f9589faa..00000000 --- a/tests/DependencyInjection/Fixtures/php/console_command_listener_overridden_priority.php +++ /dev/null @@ -1,14 +0,0 @@ -loadFromExtension('sentry', [ - 'listener_priorities' => [ - 'console' => -128, - 'console-terminate' => 64, - 'console-error' => 64, - ], -]); diff --git a/tests/DependencyInjection/Fixtures/php/error_listener_overridden_priority.php b/tests/DependencyInjection/Fixtures/php/error_listener_overridden_priority.php deleted file mode 100644 index 9fa13a99..00000000 --- a/tests/DependencyInjection/Fixtures/php/error_listener_overridden_priority.php +++ /dev/null @@ -1,12 +0,0 @@ -loadFromExtension('sentry', [ - 'listener_priorities' => [ - 'request_error' => -128, - ], -]); diff --git a/tests/DependencyInjection/Fixtures/php/messenger_listener_overridden_priority.php b/tests/DependencyInjection/Fixtures/php/messenger_listener_overridden_priority.php deleted file mode 100644 index ceb70ae5..00000000 --- a/tests/DependencyInjection/Fixtures/php/messenger_listener_overridden_priority.php +++ /dev/null @@ -1,12 +0,0 @@ -loadFromExtension('sentry', [ - 'listener_priorities' => [ - 'worker_error' => -50, - ], -]); diff --git a/tests/DependencyInjection/Fixtures/php/request_listener_overridden_priority.php b/tests/DependencyInjection/Fixtures/php/request_listener_overridden_priority.php deleted file mode 100644 index 9a4edcf3..00000000 --- a/tests/DependencyInjection/Fixtures/php/request_listener_overridden_priority.php +++ /dev/null @@ -1,12 +0,0 @@ -loadFromExtension('sentry', [ - 'listener_priorities' => [ - 'request' => -1, - ], -]); diff --git a/tests/DependencyInjection/Fixtures/php/sub_request_listener_overridden_priority.php b/tests/DependencyInjection/Fixtures/php/sub_request_listener_overridden_priority.php deleted file mode 100644 index ad20f796..00000000 --- a/tests/DependencyInjection/Fixtures/php/sub_request_listener_overridden_priority.php +++ /dev/null @@ -1,12 +0,0 @@ -loadFromExtension('sentry', [ - 'listener_priorities' => [ - 'sub_request' => -1, - ], -]); diff --git a/tests/DependencyInjection/Fixtures/xml/console_command_listener_overridden_priority.xml b/tests/DependencyInjection/Fixtures/xml/console_command_listener_overridden_priority.xml deleted file mode 100644 index bd4cbe58..00000000 --- a/tests/DependencyInjection/Fixtures/xml/console_command_listener_overridden_priority.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/tests/DependencyInjection/Fixtures/xml/error_listener_overridden_priority.xml b/tests/DependencyInjection/Fixtures/xml/error_listener_overridden_priority.xml deleted file mode 100644 index 18f25efd..00000000 --- a/tests/DependencyInjection/Fixtures/xml/error_listener_overridden_priority.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/tests/DependencyInjection/Fixtures/xml/messenger_listener_overridden_priority.xml b/tests/DependencyInjection/Fixtures/xml/messenger_listener_overridden_priority.xml deleted file mode 100644 index 08d00244..00000000 --- a/tests/DependencyInjection/Fixtures/xml/messenger_listener_overridden_priority.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/tests/DependencyInjection/Fixtures/xml/request_listener_overridden_priority.xml b/tests/DependencyInjection/Fixtures/xml/request_listener_overridden_priority.xml deleted file mode 100644 index b606652f..00000000 --- a/tests/DependencyInjection/Fixtures/xml/request_listener_overridden_priority.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/tests/DependencyInjection/Fixtures/xml/sub_request_listener_overridden_priority.xml b/tests/DependencyInjection/Fixtures/xml/sub_request_listener_overridden_priority.xml deleted file mode 100644 index c2780394..00000000 --- a/tests/DependencyInjection/Fixtures/xml/sub_request_listener_overridden_priority.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/tests/DependencyInjection/Fixtures/yml/console_command_listener_overridden_priority.yml b/tests/DependencyInjection/Fixtures/yml/console_command_listener_overridden_priority.yml deleted file mode 100644 index b8d3fd66..00000000 --- a/tests/DependencyInjection/Fixtures/yml/console_command_listener_overridden_priority.yml +++ /dev/null @@ -1,5 +0,0 @@ -sentry: - listener_priorities: - console: -128 - console_terminate: 64 - console_error: 64 diff --git a/tests/DependencyInjection/Fixtures/yml/error_listener_overridden_priority.yml b/tests/DependencyInjection/Fixtures/yml/error_listener_overridden_priority.yml deleted file mode 100644 index 6c92a29a..00000000 --- a/tests/DependencyInjection/Fixtures/yml/error_listener_overridden_priority.yml +++ /dev/null @@ -1,3 +0,0 @@ -sentry: - listener_priorities: - request_error: -128 diff --git a/tests/DependencyInjection/Fixtures/yml/messenger_listener_overridden_priority.yml b/tests/DependencyInjection/Fixtures/yml/messenger_listener_overridden_priority.yml deleted file mode 100644 index 40caa332..00000000 --- a/tests/DependencyInjection/Fixtures/yml/messenger_listener_overridden_priority.yml +++ /dev/null @@ -1,3 +0,0 @@ -sentry: - listener_priorities: - worker_error: -50 diff --git a/tests/DependencyInjection/Fixtures/yml/request_listener_overridden_priority.yml b/tests/DependencyInjection/Fixtures/yml/request_listener_overridden_priority.yml deleted file mode 100644 index 7f36cd08..00000000 --- a/tests/DependencyInjection/Fixtures/yml/request_listener_overridden_priority.yml +++ /dev/null @@ -1,3 +0,0 @@ -sentry: - listener_priorities: - request: -1 diff --git a/tests/DependencyInjection/Fixtures/yml/sub_request_listener_overridden_priority.yml b/tests/DependencyInjection/Fixtures/yml/sub_request_listener_overridden_priority.yml deleted file mode 100644 index 8155d858..00000000 --- a/tests/DependencyInjection/Fixtures/yml/sub_request_listener_overridden_priority.yml +++ /dev/null @@ -1,3 +0,0 @@ -sentry: - listener_priorities: - sub_request: -1 diff --git a/tests/DependencyInjection/SentryExtensionTest.php b/tests/DependencyInjection/SentryExtensionTest.php index 76c00176..e86e4128 100644 --- a/tests/DependencyInjection/SentryExtensionTest.php +++ b/tests/DependencyInjection/SentryExtensionTest.php @@ -34,39 +34,19 @@ abstract class SentryExtensionTest extends TestCase { abstract protected function loadFixture(ContainerBuilder $container, string $fixtureFile): void; - /** - * @dataProvider errorListenerDataProvider - */ - public function testErrorListener(string $fixture, int $tagPriority): void + public function testErrorListener(): void { - $container = $this->createContainerFromFixture($fixture); + $container = $this->createContainerFromFixture('full'); $definition = $container->getDefinition(ErrorListener::class); - $this->assertSame($tagPriority, $container->getParameter('sentry.listener_priorities.request_error')); $this->assertSame(ErrorListener::class, $definition->getClass()); $this->assertSame([ 'event' => KernelEvents::EXCEPTION, 'method' => 'handleExceptionEvent', - 'priority' => '%sentry.listener_priorities.request_error%', + 'priority' => 128, ], $definition->getTag('kernel.event_listener')[0]); } - /** - * @return \Generator - */ - public function errorListenerDataProvider(): \Generator - { - yield [ - 'full', - 128, - ]; - - yield [ - 'error_listener_overridden_priority', - -128, - ]; - } - public function testErrorListenerIsRemovedWhenDisabled(): void { $container = $this->createContainerFromFixture('error_listener_disabled'); @@ -74,105 +54,59 @@ public function testErrorListenerIsRemovedWhenDisabled(): void $this->assertFalse($container->hasDefinition(ErrorListener::class)); } - /** - * @dataProvider consoleCommandListenerDataProvider - */ - public function testConsoleCommandListener(string $fixture, int $consoleCommandTagPriority, int $consoleTerminateTagPriority, int $consoleErrorTagPriority): void + public function testConsoleCommandListener(): void { - $container = $this->createContainerFromFixture($fixture); + $container = $this->createContainerFromFixture('full'); $definition = $container->getDefinition(ConsoleCommandListener::class); - $this->assertSame($consoleCommandTagPriority, $container->getParameter('sentry.listener_priorities.console')); - $this->assertSame($consoleTerminateTagPriority, $container->getParameter('sentry.listener_priorities.console_terminate')); - $this->assertSame($consoleErrorTagPriority, $container->getParameter('sentry.listener_priorities.console_error')); $this->assertSame(ConsoleCommandListener::class, $definition->getClass()); $this->assertSame([ 'kernel.event_listener' => [ [ 'event' => ConsoleEvents::COMMAND, 'method' => 'handleConsoleCommandEvent', - 'priority' => '%sentry.listener_priorities.console%', + 'priority' => 128, ], [ 'event' => ConsoleEvents::TERMINATE, 'method' => 'handleConsoleTerminateEvent', - 'priority' => '%sentry.listener_priorities.console_terminate%', + 'priority' => -64, ], [ 'event' => ConsoleEvents::ERROR, 'method' => 'handleConsoleErrorEvent', - 'priority' => '%sentry.listener_priorities.console_error%', + 'priority' => -64, ], ], ], $definition->getTags()); } - /** - * @return \Generator - */ - public function consoleCommandListenerDataProvider(): \Generator - { - yield [ - 'full', - 128, - -64, - -64, - ]; - - yield [ - 'console_command_listener_overridden_priority', - -128, - 64, - 64, - ]; - } - - /** - * @dataProvider messengerListenerDataProvider - */ - public function testMessengerListener(string $fixture, int $tagPriority): void + public function testMessengerListener(): void { if (!interface_exists(MessageBusInterface::class)) { $this->markTestSkipped('This test requires the "symfony/messenger" Composer package to be installed.'); } - $container = $this->createContainerFromFixture($fixture); + $container = $this->createContainerFromFixture('full'); $definition = $container->getDefinition(MessengerListener::class); - $this->assertSame($tagPriority, $container->getParameter('sentry.listener_priorities.worker_error')); $this->assertSame(MessengerListener::class, $definition->getClass()); $this->assertSame([ 'kernel.event_listener' => [ [ 'event' => WorkerMessageFailedEvent::class, 'method' => 'handleWorkerMessageFailedEvent', - 'priority' => '%sentry.listener_priorities.worker_error%', + 'priority' => 50, ], [ 'event' => WorkerMessageHandledEvent::class, 'method' => 'handleWorkerMessageHandledEvent', - 'priority' => '%sentry.listener_priorities.worker_error%', + 'priority' => 50, ], ], ], $definition->getTags()); } - /** - * @return \Generator - */ - public function messengerListenerDataProvider(): \Generator - { - yield [ - 'full', - 50, - ]; - - yield [ - 'messenger_listener_overridden_priority', - -50, - ]; - } - public function testMessengerListenerIsRemovedWhenDisabled(): void { $container = $this->createContainerFromFixture('messenger_listener_disabled'); @@ -180,90 +114,50 @@ public function testMessengerListenerIsRemovedWhenDisabled(): void $this->assertFalse($container->hasDefinition(MessengerListener::class)); } - /** - * @dataProvider requestListenerDataProvider - */ - public function testRequestListener(string $fixture, int $tagPriority): void + public function testRequestListener(): void { - $container = $this->createContainerFromFixture($fixture); + $container = $this->createContainerFromFixture('full'); $definition = $container->getDefinition(RequestListener::class); - $this->assertSame($tagPriority, $container->getParameter('sentry.listener_priorities.request')); $this->assertSame(RequestListener::class, $definition->getClass()); $this->assertSame([ 'kernel.event_listener' => [ [ 'event' => KernelEvents::REQUEST, 'method' => 'handleKernelRequestEvent', - 'priority' => '%sentry.listener_priorities.request%', + 'priority' => 1, ], [ 'event' => KernelEvents::CONTROLLER, 'method' => 'handleKernelControllerEvent', - 'priority' => '%sentry.listener_priorities.request%', + 'priority' => 1, ], ], ], $definition->getTags()); } - /** - * @return \Generator - */ - public function requestListenerDataProvider(): \Generator + public function testSubRequestListener(): void { - yield [ - 'full', - 1, - ]; - - yield [ - 'request_listener_overridden_priority', - -1, - ]; - } - - /** - * @dataProvider subRequestListenerDataProvider - */ - public function testSubRequestListener(string $fixture, int $tagPriority): void - { - $container = $this->createContainerFromFixture($fixture); + $container = $this->createContainerFromFixture('full'); $definition = $container->getDefinition(SubRequestListener::class); - $this->assertSame($tagPriority, $container->getParameter('sentry.listener_priorities.sub_request')); $this->assertSame(SubRequestListener::class, $definition->getClass()); $this->assertSame([ 'kernel.event_listener' => [ [ 'event' => KernelEvents::REQUEST, 'method' => 'handleKernelRequestEvent', - 'priority' => '%sentry.listener_priorities.sub_request%', + 'priority' => 1, ], [ 'event' => KernelEvents::FINISH_REQUEST, 'method' => 'handleKernelFinishRequestEvent', - 'priority' => '%sentry.listener_priorities.sub_request%', + 'priority' => 1, ], ], ], $definition->getTags()); } - /** - * @return \Generator - */ - public function subRequestListenerDataProvider(): \Generator - { - yield [ - 'full', - 1, - ]; - - yield [ - 'sub_request_listener_overridden_priority', - -1, - ]; - } - public function testClentIsCreatedFromOptions(): void { $container = $this->createContainerFromFixture('full'); diff --git a/tests/EventListener/RequestListenerTest.php b/tests/EventListener/RequestListenerTest.php index 92914053..3d71b4f7 100644 --- a/tests/EventListener/RequestListenerTest.php +++ b/tests/EventListener/RequestListenerTest.php @@ -219,7 +219,7 @@ public function __construct() parent::__construct(); $this->setAuthenticated(true); - $this->setUser(new class() { + $this->setUser(new class() implements \Stringable { public function __toString(): string { return 'foo_user'; @@ -381,7 +381,7 @@ public function __construct() parent::__construct(); $this->setAuthenticated(true); - $this->setUser(new class() { + $this->setUser(new class() implements \Stringable { public function __toString(): string { return 'foo_user'; From d016ebdc1867e20ffd566218739316d525f2f850 Mon Sep 17 00:00:00 2001 From: Stefano Arlandini Date: Mon, 11 Jan 2021 13:37:51 +0100 Subject: [PATCH 2/3] Fix CR issues --- CHANGELOG.md | 2 +- UPGRADE-4.0.md | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73a97b34..c2a92f08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ - Retrieve the request from the `RequestStack` when using the `RequestIntegration` integration (#361) - Reorganize the folder structure and change CS standard (#405) - [BC BREAK] Remove the `monolog` configuration option. Instead, register the service manually (#406) -- [BC BREAK] Remove the `listener_priorities` configuration option. Instead, use a compiler pass to change the priority of the listeners (#) +- [BC BREAK] Remove the `listener_priorities` configuration option. Instead, use a compiler pass to change the priority of the listeners (#407) ## 3.5.3 (2020-10-13) diff --git a/UPGRADE-4.0.md b/UPGRADE-4.0.md index 5ef43587..2b49e501 100644 --- a/UPGRADE-4.0.md +++ b/UPGRADE-4.0.md @@ -12,6 +12,41 @@ - Renamed the `SubRequestListener::onKernelFinishRequest` method to `SubRequestListener::handleKernelFinishRequestEvent`. - Removed the `Sentry\FlushableClientInterface` service alias. - Removed the `sentry.listener_priorities` configuration option. + + Before: + + ```yaml + sentry: + listener_priorities: + request: 10 + ``` + + After: + + ```php + use Sentry\SentryBundle\EventListener\RequestListener; + use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; + use Symfony\Component\DependencyInjection\ContainerBuilder; + use Symfony\Component\HttpKernel\KernelEvents; + + final class ChangeSentryListenerPriorityPass implements CompilerPassInterface + { + public function process(ContainerBuilder $container) + { + $definition = $container->getDefinition(RequestListener::class); + $definitionTags = $definition->getTags(); + + foreach ($definitionTags['kernel.event_listener'] as &$tags) { + if (KernelEvents::REQUEST === $tags['event']) { + $tags['priority'] = 10; + } + } + + $definition->setTags($definitionTags); + } + } + ``` + - Removed the `sentry.options.excluded_exceptions` configuration option. Before: From 07b832d569a72cc17d1a1d08337024740a260944 Mon Sep 17 00:00:00 2001 From: Stefano Arlandini Date: Mon, 11 Jan 2021 18:09:41 +0100 Subject: [PATCH 3/3] Require the PHP8 polyfill only as dev package --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index d3c42da5..e5e5532d 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,6 @@ "symfony/dependency-injection": "^3.4.43||^4.4.11||^5.0.11", "symfony/event-dispatcher": "^3.4.43||^4.4.11||^5.0.11", "symfony/http-kernel": "^3.4.43||^4.4.11||^5.0.11", - "symfony/polyfill-php80": "^1.22", "symfony/psr-http-message-bridge": "^2.0", "symfony/security-core": "^3.4.43||^4.4.11||^5.0.11" }, @@ -47,6 +46,7 @@ "symfony/messenger": "^4.4.11||^5.0.11", "symfony/monolog-bundle": "^3.4", "symfony/phpunit-bridge": "^5.0", + "symfony/polyfill-php80": "^1.22", "symfony/yaml": "^3.4.43||^4.4.11||^5.0.11" }, "suggest": {