Register the messenger data collector only when the profiler is enabled

This commit is contained in:
Pierre du Plessis 2018-09-10 08:11:02 +02:00
parent 92a22b02d3
commit bd3a66bc59
No known key found for this signature in database
GPG Key ID: DCB9DD926044955D
4 changed files with 9 additions and 9 deletions

View File

@ -52,5 +52,9 @@
<tag name="kernel.event_listener" event="kernel.controller" method="onKernelController"/> <tag name="kernel.event_listener" event="kernel.controller" method="onKernelController"/>
<tag name="data_collector" template="@WebProfiler/Collector/router.html.twig" id="router" priority="285" /> <tag name="data_collector" template="@WebProfiler/Collector/router.html.twig" id="router" priority="285" />
</service> </service>
<service id="data_collector.messenger" class="Symfony\Component\Messenger\DataCollector\MessengerDataCollector">
<tag name="data_collector" template="@WebProfiler/Collector/messenger.html.twig" id="messenger" priority="100" />
</service>
</services> </services>
</container> </container>

View File

@ -34,17 +34,13 @@
<argument type="service" id="validator" /> <argument type="service" id="validator" />
</service> </service>
<!-- Logging & Debug --> <!-- Logging -->
<service id="messenger.middleware.logging" class="Symfony\Component\Messenger\Middleware\LoggingMiddleware" abstract="true"> <service id="messenger.middleware.logging" class="Symfony\Component\Messenger\Middleware\LoggingMiddleware" abstract="true">
<argument type="service" id="logger" /> <argument type="service" id="logger" />
<tag name="monolog.logger" channel="messenger" /> <tag name="monolog.logger" channel="messenger" />
</service> </service>
<service id="messenger.data_collector" class="Symfony\Component\Messenger\DataCollector\MessengerDataCollector">
<tag name="data_collector" template="@WebProfiler/Collector/messenger.html.twig" id="messenger" priority="100" />
</service>
<!-- Discovery --> <!-- Discovery -->
<service id="messenger.receiver_locator"> <service id="messenger.receiver_locator">
<tag name="container.service_locator" /> <tag name="container.service_locator" />

View File

@ -64,7 +64,7 @@ class MessengerPass implements CompilerPassInterface
$container->getParameterBag()->remove($busMiddlewareParameter); $container->getParameterBag()->remove($busMiddlewareParameter);
} }
if ($container->hasDefinition('messenger.data_collector')) { if ($container->hasDefinition('data_collector.messenger')) {
$this->registerBusToCollector($container, $busId); $this->registerBusToCollector($container, $busId);
} }
} }
@ -276,7 +276,7 @@ class MessengerPass implements CompilerPassInterface
(new Definition(TraceableMessageBus::class, array(new Reference($tracedBusId.'.inner'))))->setDecoratedService($busId) (new Definition(TraceableMessageBus::class, array(new Reference($tracedBusId.'.inner'))))->setDecoratedService($busId)
); );
$container->getDefinition('messenger.data_collector')->addMethodCall('registerBus', array($busId, new Reference($tracedBusId))); $container->getDefinition('data_collector.messenger')->addMethodCall('registerBus', array($busId, new Reference($tracedBusId)));
} }
private function registerBusMiddleware(ContainerBuilder $container, string $busId, array $middlewareCollection) private function registerBusMiddleware(ContainerBuilder $container, string $busId, array $middlewareCollection)

View File

@ -435,14 +435,14 @@ class MessengerPassTest extends TestCase
$dataCollector = $this->getMockBuilder(MessengerDataCollector::class)->getMock(); $dataCollector = $this->getMockBuilder(MessengerDataCollector::class)->getMock();
$container = $this->getContainerBuilder($fooBusId = 'messenger.bus.foo'); $container = $this->getContainerBuilder($fooBusId = 'messenger.bus.foo');
$container->register('messenger.data_collector', $dataCollector); $container->register('data_collector.messenger', $dataCollector);
$container->setParameter('kernel.debug', true); $container->setParameter('kernel.debug', true);
(new MessengerPass())->process($container); (new MessengerPass())->process($container);
$this->assertTrue($container->hasDefinition($debuggedFooBusId = 'debug.traced.'.$fooBusId)); $this->assertTrue($container->hasDefinition($debuggedFooBusId = 'debug.traced.'.$fooBusId));
$this->assertSame(array($fooBusId, null, 0), $container->getDefinition($debuggedFooBusId)->getDecoratedService()); $this->assertSame(array($fooBusId, null, 0), $container->getDefinition($debuggedFooBusId)->getDecoratedService());
$this->assertEquals(array(array('registerBus', array($fooBusId, new Reference($debuggedFooBusId)))), $container->getDefinition('messenger.data_collector')->getMethodCalls()); $this->assertEquals(array(array('registerBus', array($fooBusId, new Reference($debuggedFooBusId)))), $container->getDefinition('data_collector.messenger')->getMethodCalls());
} }
public function testRegistersMiddlewareFromServices() public function testRegistersMiddlewareFromServices()