Skip to content

Commit f2d223e

Browse files
[Messenger] make TraceableMiddleware decorate a StackInterface instead of each middleware to free the callstack from noisy frames
1 parent 87cfc70 commit f2d223e

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1542,11 +1542,15 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
15421542
}
15431543

15441544
foreach ($middleware as $middlewareItem) {
1545-
if (!$validationConfig['enabled'] && 'messenger.middleware.validation' === $middlewareItem['id']) {
1545+
if (!$validationConfig['enabled'] && \in_array($middlewareItem['id'], array('validation', 'messenger.middleware.validation'), true)) {
15461546
throw new LogicException('The Validation middleware is only available when the Validator component is installed and enabled. Try running "composer require symfony/validator".');
15471547
}
15481548
}
15491549

1550+
if ($container->getParameter('kernel.debug') && class_exists(Stopwatch::class)) {
1551+
array_unshift($middleware, array('id' => 'traceable', 'arguments' => array($busId)));
1552+
}
1553+
15501554
$container->setParameter($busId.'.middleware', $middleware);
15511555
$container->register($busId, MessageBus::class)->addArgument(array())->addTag('messenger.bus');
15521556

Resources/config/messenger.xml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,14 @@
3333
<argument type="service" id="validator" />
3434
</service>
3535

36+
<service id="messenger.middleware.traceable" class="Symfony\Component\Messenger\Middleware\TraceableMiddleware" abstract="true">
37+
<argument type="service" id="debug.stopwatch" />
38+
</service>
39+
3640
<!-- Logging -->
3741
<service id="messenger.middleware.logging" class="Symfony\Component\Messenger\Middleware\LoggingMiddleware" abstract="true">
38-
<argument type="service" id="logger" />
39-
4042
<tag name="monolog.logger" channel="messenger" />
43+
<argument type="service" id="logger" />
4144
</service>
4245

4346
<!-- Discovery -->
@@ -56,10 +59,9 @@
5659
</service>
5760

5861
<service id="messenger.transport.amqp.factory" class="Symfony\Component\Messenger\Transport\AmqpExt\AmqpTransportFactory">
62+
<tag name="messenger.transport_factory" />
5963
<argument type="service" id="messenger.transport.serializer" />
6064
<argument>%kernel.debug%</argument>
61-
62-
<tag name="messenger.transport_factory" />
6365
</service>
6466
</services>
6567
</container>

0 commit comments

Comments
 (0)