Skip to content

Commit 213d839

Browse files
authored
Remove the listener priorities configuration options (#407)
* Remove the listener priorities configuration options * Fix CR issues * Require the PHP8 polyfill only as dev package
1 parent 7d09f09 commit 213d839

28 files changed

+87
-338
lines changed

.github/workflows/tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
php-version: ${{ matrix.php }}
5454
coverage: xdebug
5555
- run: |
56-
sed -ri '/symfony\/(monolog-bundle|phpunit-bridge|messenger|psr-http-message-bridge)/! s/"symfony\/(.+)": "(.+)"/"symfony\/\1": "'${{ matrix.symfony_constraint }}'"/' composer.json;
56+
sed -ri '/symfony\/(monolog-bundle|phpunit-bridge|messenger|psr-http-message-bridge|polyfill-php80)/! s/"symfony\/(.+)": "(.+)"/"symfony\/\1": "'${{ matrix.symfony_constraint }}'"/' composer.json;
5757
if: matrix.symfony_constraint
5858
- run: composer remove --dev symfony/messenger --no-update
5959
if: matrix.symfony_constraint == '3.4.*' || matrix.composer_option == '--prefer-lowest'

CHANGELOG.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,19 @@
33
## Unreleased
44

55
- Enable back all error listeners from base SDK integration (#322)
6-
- Added `options.traces_sampler` and `options.traces_sample_rate` configuration options (#385)
7-
- [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)
8-
- [BC BREAK] Removed the `options.excluded_exceptions` configuration option. Instead of setting it, configure the `IgnoreErrorsIntegration` integration (#385)
9-
- [BC BREAK] Refactorized the `ConsoleCommandListener`, `ErrorListener`, `RequestListener` and `SubRequestListener` event listeners (#387)
6+
- Add `options.traces_sampler` and `options.traces_sample_rate` configuration options (#385)
7+
- [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)
8+
- [BC BREAK] Remove the `options.excluded_exceptions` configuration option. Instead of setting it, configure the `IgnoreErrorsIntegration` integration (#385)
9+
- [BC BREAK] Refactorize the `ConsoleCommandListener`, `ErrorListener`, `RequestListener` and `SubRequestListener` event listeners (#387)
1010
- Registered the CLI commands as lazy services (#373)
11-
- [BC BREAK] Refactorized the configuration tree and the definitions of some container services (#401)
11+
- [BC BREAK] Refactorize the configuration tree and the definitions of some container services (#401)
1212
- Support the XML format for the bundle configuration (#401)
1313
- PHP 8 support (#399, thanks to @Yozhef)
1414
- Retrieve the request from the `RequestStack` when using the `RequestIntegration` integration (#361)
1515
- Reorganize the folder structure and change CS standard (#405)
16-
- [BC BREAK] Removed the `monolog` configuration option. Instead, register the service manually (#406)
17-
16+
- [BC BREAK] Remove the `monolog` configuration option. Instead, register the service manually (#406)
17+
- [BC BREAK] Remove the `listener_priorities` configuration option. Instead, use a compiler pass to change the priority of the listeners (#407)
18+
1819
## 3.5.3 (2020-10-13)
1920

2021
- Refactors and fixes class aliases for more robustness (#315 #359, thanks to @guilliamxavier)

UPGRADE-4.0.md

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,42 @@
1111
- Renamed the `SubRequestListener::onKernelRequest` method to `SubRequestListener::handleKernelRequestEvent`.
1212
- Renamed the `SubRequestListener::onKernelFinishRequest` method to `SubRequestListener::handleKernelFinishRequestEvent`.
1313
- Removed the `Sentry\FlushableClientInterface` service alias.
14+
- Removed the `sentry.listener_priorities` configuration option.
15+
16+
Before:
17+
18+
```yaml
19+
sentry:
20+
listener_priorities:
21+
request: 10
22+
```
23+
24+
After:
25+
26+
```php
27+
use Sentry\SentryBundle\EventListener\RequestListener;
28+
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
29+
use Symfony\Component\DependencyInjection\ContainerBuilder;
30+
use Symfony\Component\HttpKernel\KernelEvents;
31+
32+
final class ChangeSentryListenerPriorityPass implements CompilerPassInterface
33+
{
34+
public function process(ContainerBuilder $container)
35+
{
36+
$definition = $container->getDefinition(RequestListener::class);
37+
$definitionTags = $definition->getTags();
38+
39+
foreach ($definitionTags['kernel.event_listener'] as &$tags) {
40+
if (KernelEvents::REQUEST === $tags['event']) {
41+
$tags['priority'] = 10;
42+
}
43+
}
44+
45+
$definition->setTags($definitionTags);
46+
}
47+
}
48+
```
49+
1450
- Removed the `sentry.options.excluded_exceptions` configuration option.
1551

1652
Before:
@@ -38,9 +74,9 @@
3874
- RuntimeException
3975
```
4076
41-
- Changed the default value of the `sentry.listener_priorities.console_error` configuration option to `-64`.
42-
- Changed the default value of the `sentry.listener_priorities.console` configuration option to `128`.
43-
- Changed the default value of the `sentry.listener_priorities.worker_error` configuration option to `50`.
77+
- Changed the priority of the `ConsoleCommandListener::handleConsoleErrorEvent` listener to `-64`.
78+
- Changed the priority of the `ConsoleCommandListener::::handleConsoleCommandEvent` listener to `128`.
79+
- Changed the priority of the `MessengerListener::handleWorkerMessageFailedEvent` listener to `50`.
4480
- 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.
4581

4682
Before

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
"symfony/messenger": "^4.4.11||^5.0.11",
4747
"symfony/monolog-bundle": "^3.4",
4848
"symfony/phpunit-bridge": "^5.0",
49+
"symfony/polyfill-php80": "^1.22",
4950
"symfony/yaml": "^3.4.43||^4.4.11||^5.0.11"
5051
},
5152
"suggest": {

phpstan-baseline.neon

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ parameters:
66
path: src/DependencyInjection/Configuration.php
77

88
-
9-
message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeParentInterface\\:\\:arrayNode\\(\\)\\.$#"
10-
count: 2
9+
message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeParentInterface\\:\\:booleanNode\\(\\)\\.$#"
10+
count: 1
1111
path: src/DependencyInjection/Configuration.php
1212

1313
-

src/DependencyInjection/Configuration.php

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public function getConfigTreeBuilder(): TreeBuilder
3636
->thenUnset()
3737
->end()
3838
->end()
39+
->booleanNode('register_error_listener')->defaultTrue()->end()
3940
->arrayNode('options')
4041
->addDefaultsIfNotSet()
4142
->fixXmlConfig('integration')
@@ -127,7 +128,6 @@ public function getConfigTreeBuilder(): TreeBuilder
127128
;
128129

129130
$this->addMessengerSection($rootNode);
130-
$this->addListenerSection($rootNode);
131131

132132
return $treeBuilder;
133133
}
@@ -144,24 +144,4 @@ private function addMessengerSection(ArrayNodeDefinition $rootNode): void
144144
->end()
145145
->end();
146146
}
147-
148-
private function addListenerSection(ArrayNodeDefinition $rootNode): void
149-
{
150-
$rootNode
151-
->children()
152-
->booleanNode('register_error_listener')->defaultTrue()->end()
153-
->arrayNode('listener_priorities')
154-
->addDefaultsIfNotSet()
155-
->children()
156-
->scalarNode('request')->defaultValue(1)->end()
157-
->scalarNode('sub_request')->defaultValue(1)->end()
158-
->scalarNode('console')->defaultValue(128)->end()
159-
->scalarNode('request_error')->defaultValue(128)->end()
160-
->scalarNode('console_error')->defaultValue(-64)->end()
161-
->scalarNode('console_terminate')->defaultValue(-64)->end()
162-
->scalarNode('worker_error')->defaultValue(50)->end()
163-
->end()
164-
->end()
165-
->end();
166-
}
167147
}

src/DependencyInjection/SentryExtension.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,6 @@ protected function loadInternal(array $mergedConfig, ContainerBuilder $container
5252
$loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
5353
$loader->load('services.xml');
5454

55-
foreach ($mergedConfig['listener_priorities'] as $key => $priority) {
56-
$container->setParameter('sentry.listener_priorities.' . $key, $priority);
57-
}
58-
5955
$this->registerConfiguration($container, $mergedConfig);
6056
$this->registerErrorListenerConfiguration($container, $mergedConfig);
6157
$this->registerMessengerListenerConfiguration($container, $mergedConfig['messenger']);

src/EventListener/RequestListener.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public function handleKernelRequestEvent(RequestListenerRequestEvent $event): vo
5858
$token = $this->tokenStorage->getToken();
5959
}
6060

61-
if (null !== $token && $token->isAuthenticated() && $token->getUser()) {
61+
if (null !== $token && $token->isAuthenticated() && null !== $token->getUser()) {
6262
$userData->setUsername($this->getUsername($token->getUser()));
6363
}
6464

@@ -91,7 +91,7 @@ public function handleKernelControllerEvent(RequestListenerControllerEvent $even
9191
}
9292

9393
/**
94-
* @param UserInterface | object | string $user
94+
* @param UserInterface|object|string $user
9595
*/
9696
private function getUsername($user): ?string
9797
{

src/Resources/config/schema/sentry-1.0.xsd

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
<xsd:choice maxOccurs="unbounded">
1212
<xsd:element name="options" type="options" minOccurs="0" maxOccurs="1" />
1313
<xsd:element name="messenger" type="messenger" minOccurs="0" maxOccurs="1" />
14-
<xsd:element name="listener-priorities" type="listeners-priorities" minOccurs="0" maxOccurs="1" />
1514
</xsd:choice>
1615

1716
<xsd:attribute name="register-error-listener" type="xsd:boolean" />
@@ -79,14 +78,4 @@
7978
<xsd:complexType name="messenger">
8079
<xsd:attribute name="enabled" type="xsd:boolean" />
8180
</xsd:complexType>
82-
83-
<xsd:complexType name="listeners-priorities">
84-
<xsd:attribute name="request" type="xsd:integer" />
85-
<xsd:attribute name="sub-request" type="xsd:integer" />
86-
<xsd:attribute name="console" type="xsd:integer" />
87-
<xsd:attribute name="request-error" type="xsd:integer" />
88-
<xsd:attribute name="console-error" type="xsd:integer" />
89-
<xsd:attribute name="console-terminate" type="xsd:integer" />
90-
<xsd:attribute name="worker-error" type="xsd:integer" />
91-
</xsd:complexType>
9281
</xsd:schema>

src/Resources/config/services.xml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,37 +26,37 @@
2626
<service id="Sentry\SentryBundle\EventListener\ConsoleCommandListener" class="Sentry\SentryBundle\EventListener\ConsoleCommandListener">
2727
<argument type="service" id="Sentry\State\HubInterface" />
2828

29-
<tag name="kernel.event_listener" event="console.command" method="handleConsoleCommandEvent" priority="%sentry.listener_priorities.console%" />
30-
<tag name="kernel.event_listener" event="console.terminate" method="handleConsoleTerminateEvent" priority="%sentry.listener_priorities.console_terminate%" />
31-
<tag name="kernel.event_listener" event="console.error" method="handleConsoleErrorEvent" priority="%sentry.listener_priorities.console_error%" />
29+
<tag name="kernel.event_listener" event="console.command" method="handleConsoleCommandEvent" priority="128" />
30+
<tag name="kernel.event_listener" event="console.terminate" method="handleConsoleTerminateEvent" priority="-64" />
31+
<tag name="kernel.event_listener" event="console.error" method="handleConsoleErrorEvent" priority="-64" />
3232
</service>
3333

3434
<service id="Sentry\SentryBundle\EventListener\ErrorListener" class="Sentry\SentryBundle\EventListener\ErrorListener">
3535
<argument type="service" id="Sentry\State\HubInterface" />
3636

37-
<tag name="kernel.event_listener" event="kernel.exception" method="handleExceptionEvent" priority="%sentry.listener_priorities.request_error%" />
37+
<tag name="kernel.event_listener" event="kernel.exception" method="handleExceptionEvent" priority="128" />
3838
</service>
3939

4040
<service id="Sentry\SentryBundle\EventListener\RequestListener" class="Sentry\SentryBundle\EventListener\RequestListener">
4141
<argument type="service" id="Sentry\State\HubInterface" />
4242
<argument type="service" id="security.token_storage" on-invalid="ignore" />
4343

44-
<tag name="kernel.event_listener" event="kernel.request" method="handleKernelRequestEvent" priority="%sentry.listener_priorities.request%" />
45-
<tag name="kernel.event_listener" event="kernel.controller" method="handleKernelControllerEvent" priority="%sentry.listener_priorities.request%" />
44+
<tag name="kernel.event_listener" event="kernel.request" method="handleKernelRequestEvent" priority="1" />
45+
<tag name="kernel.event_listener" event="kernel.controller" method="handleKernelControllerEvent" priority="1" />
4646
</service>
4747

4848
<service id="Sentry\SentryBundle\EventListener\SubRequestListener" class="Sentry\SentryBundle\EventListener\SubRequestListener">
4949
<argument type="service" id="Sentry\State\HubInterface" />
5050

51-
<tag name="kernel.event_listener" event="kernel.request" method="handleKernelRequestEvent" priority="%sentry.listener_priorities.sub_request%" />
52-
<tag name="kernel.event_listener" event="kernel.finish_request" method="handleKernelFinishRequestEvent" priority="%sentry.listener_priorities.sub_request%" />
51+
<tag name="kernel.event_listener" event="kernel.request" method="handleKernelRequestEvent" priority="1" />
52+
<tag name="kernel.event_listener" event="kernel.finish_request" method="handleKernelFinishRequestEvent" priority="1" />
5353
</service>
5454

5555
<service id="Sentry\SentryBundle\EventListener\MessengerListener" class="Sentry\SentryBundle\EventListener\MessengerListener">
5656
<argument type="service" id="Sentry\State\HubInterface" />
5757

58-
<tag name="kernel.event_listener" event="Symfony\Component\Messenger\Event\WorkerMessageFailedEvent" method="handleWorkerMessageFailedEvent" priority="%sentry.listener_priorities.worker_error%" />
59-
<tag name="kernel.event_listener" event="Symfony\Component\Messenger\Event\WorkerMessageHandledEvent" method="handleWorkerMessageHandledEvent" priority="%sentry.listener_priorities.worker_error%" />
58+
<tag name="kernel.event_listener" event="Symfony\Component\Messenger\Event\WorkerMessageFailedEvent" method="handleWorkerMessageFailedEvent" priority="50" />
59+
<tag name="kernel.event_listener" event="Symfony\Component\Messenger\Event\WorkerMessageHandledEvent" method="handleWorkerMessageHandledEvent" priority="50" />
6060
</service>
6161

6262
<service id="Sentry\SentryBundle\Command\SentryTestCommand" class="Sentry\SentryBundle\Command\SentryTestCommand">

tests/DependencyInjection/ConfigurationTest.php

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ final class ConfigurationTest extends TestCase
1616
public function testProcessConfigurationWithDefaultConfiguration(): void
1717
{
1818
$expectedBundleDefaultConfig = [
19+
'register_error_listener' => true,
1920
'options' => [
2021
'integrations' => [],
2122
'prefixes' => [],
@@ -34,16 +35,6 @@ public function testProcessConfigurationWithDefaultConfiguration(): void
3435
'enabled' => interface_exists(MessageBusInterface::class),
3536
'capture_soft_fails' => true,
3637
],
37-
'register_error_listener' => true,
38-
'listener_priorities' => [
39-
'request' => 1,
40-
'sub_request' => 1,
41-
'console' => 128,
42-
'request_error' => 128,
43-
'console_error' => -64,
44-
'console_terminate' => -64,
45-
'worker_error' => 50,
46-
],
4738
];
4839

4940
$this->assertSame($expectedBundleDefaultConfig, $this->processConfiguration([]));

tests/DependencyInjection/Fixtures/php/console_command_listener_overridden_priority.php

Lines changed: 0 additions & 14 deletions
This file was deleted.

tests/DependencyInjection/Fixtures/php/error_listener_overridden_priority.php

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/DependencyInjection/Fixtures/php/messenger_listener_overridden_priority.php

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/DependencyInjection/Fixtures/php/request_listener_overridden_priority.php

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/DependencyInjection/Fixtures/php/sub_request_listener_overridden_priority.php

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/DependencyInjection/Fixtures/xml/console_command_listener_overridden_priority.xml

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/DependencyInjection/Fixtures/xml/error_listener_overridden_priority.xml

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/DependencyInjection/Fixtures/xml/messenger_listener_overridden_priority.xml

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/DependencyInjection/Fixtures/xml/request_listener_overridden_priority.xml

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)