Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b1123bb

Browse files
committed
Register the debug bus decorator in the message pass directly
1 parent e782f39 commit b1123bb

File tree

3 files changed

+13
-18
lines changed

3 files changed

+13
-18
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@
6363
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
6464
use Symfony\Component\Messenger\MessageBus;
6565
use Symfony\Component\Messenger\MessageBusInterface;
66-
use Symfony\Component\Messenger\TraceableMessageBus;
6766
use Symfony\Component\Messenger\Transport\ReceiverInterface;
6867
use Symfony\Component\Messenger\Transport\SenderInterface;
6968
use Symfony\Component\PropertyAccess\PropertyAccessor;
@@ -1483,11 +1482,6 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
14831482
$container->setAlias('message_bus', $busId);
14841483
$container->setAlias(MessageBusInterface::class, $busId);
14851484
}
1486-
1487-
$container->setDefinition(
1488-
$tracedBusId = 'debug.traced.'.$busId,
1489-
(new Definition(TraceableMessageBus::class, array(new Reference($tracedBusId.'.inner'))))->setDecoratedService($busId)
1490-
);
14911485
}
14921486

14931487
if (!$container->hasAlias('message_bus')) {

src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
use Symfony\Component\Messenger\Handler\ChainHandler;
2323
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
2424
use Symfony\Component\Messenger\Handler\MessageSubscriberInterface;
25+
use Symfony\Component\Messenger\TraceableMessageBus;
2526

2627
/**
2728
* @author Samuel Roze <[email protected]>
@@ -59,7 +60,7 @@ public function process(ContainerBuilder $container)
5960
$container->getParameterBag()->remove($busMiddlewaresParameter);
6061
}
6162

62-
if ($container->hasDefinition('messenger.data_collector')) {
63+
if ($container->getParameter('kernel.debug') && $container->hasDefinition('messenger.data_collector')) {
6364
$this->registerBusToCollector($container, $busId, $tags[0]);
6465
}
6566
}
@@ -191,15 +192,12 @@ private function registerSenders(ContainerBuilder $container)
191192

192193
private function registerBusToCollector(ContainerBuilder $container, string $busId, array $tag)
193194
{
194-
if (!$container->hasDefinition($debugBusId = 'debug.traced.'.$busId)) {
195-
return;
196-
}
195+
$container->setDefinition(
196+
$tracedBusId = 'debug.traced.'.$busId,
197+
(new Definition(TraceableMessageBus::class, array(new Reference($tracedBusId.'.inner'))))->setDecoratedService($busId)
198+
);
197199

198-
if ($container->getParameter('kernel.debug')) {
199-
$container->getDefinition('messenger.data_collector')->addMethodCall('registerBus', array($tag['name'] ?? $debugBusId, new Reference($debugBusId)));
200-
} else {
201-
$container->removeDefinition($debugBusId);
202-
}
200+
$container->getDefinition('messenger.data_collector')->addMethodCall('registerBus', array($tag['name'] ?? $busId, new Reference($tracedBusId)));
203201
}
204202

205203
private function registerBusMiddlewares(ContainerBuilder $container, string $busId, array $middlewares)

src/Symfony/Component/Messenger/Tests/DependencyInjection/MessengerPassTest.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,13 +250,16 @@ public function testRegistersTraceableBusesToCollector()
250250
$container = $this->getContainerBuilder();
251251
$container->register('messenger.data_collector', $dataCollector);
252252
$container->register($fooBusId = 'messenger.bus.foo', MessageBusInterface::class)->addTag('messenger.bus', array('name' => 'foo'));
253-
$container->register('messenger.bus.bar', MessageBusInterface::class)->addTag('messenger.bus');
254-
$container->register($debugedFooBusId = 'debug.traced.'.$fooBusId, TraceableMessageBus::class)->setDecoratedService($fooBusId);
253+
$container->register($barBusId = 'messenger.bus.bar', MessageBusInterface::class)->addTag('messenger.bus');
255254
$container->setParameter('kernel.debug', true);
256255

257256
(new MessengerPass())->process($container);
258257

259-
$this->assertEquals(array(array('registerBus', array('foo', new Reference($debugedFooBusId)))), $container->getDefinition('messenger.data_collector')->getMethodCalls());
258+
$this->assertTrue($container->hasDefinition($debuggedFooBusId = 'debug.traced.'.$fooBusId));
259+
$this->assertSame(array($fooBusId, null, 0), $container->getDefinition($debuggedFooBusId)->getDecoratedService());
260+
$this->assertTrue($container->hasDefinition($debuggedBarBusId = 'debug.traced.'.$barBusId));
261+
$this->assertSame(array($barBusId, null, 0), $container->getDefinition($debuggedBarBusId)->getDecoratedService());
262+
$this->assertEquals(array(array('registerBus', array('foo', new Reference($debuggedFooBusId))), array('registerBus', array('messenger.bus.bar', new Reference($debuggedBarBusId)))), $container->getDefinition('messenger.data_collector')->getMethodCalls());
260263
}
261264

262265
public function testRegistersMiddlewaresFromServices()

0 commit comments

Comments
 (0)