[FrameworkBundle] remove messenger cache if not enabled

This commit is contained in:
David Maicher 2020-01-14 12:21:57 +01:00
parent ec0333c081
commit f81161df8d
6 changed files with 34 additions and 0 deletions

View File

@ -292,6 +292,7 @@ class FrameworkExtension extends Extension
$container->removeDefinition('console.command.messenger_failed_messages_retry');
$container->removeDefinition('console.command.messenger_failed_messages_show');
$container->removeDefinition('console.command.messenger_failed_messages_remove');
$container->removeDefinition('cache.messenger.restart_workers_signal');
}
$propertyInfoEnabled = $this->isConfigEnabled($container, $config['property_info']);

View File

@ -414,6 +414,7 @@
<xsd:element name="bus" type="messenger_bus" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="default-bus" type="xsd:string" />
<xsd:attribute name="enabled" type="xsd:boolean" />
</xsd:complexType>
<xsd:complexType name="messenger_serializer">

View File

@ -0,0 +1,5 @@
<?php
$container->loadFromExtension('framework', [
'messenger' => false,
]);

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:framework="http://symfony.com/schema/dic/symfony"
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
<framework:config>
<framework:messenger enabled="false" />
</framework:config>
</container>

View File

@ -0,0 +1,2 @@
framework:
messenger: false

View File

@ -659,9 +659,23 @@ abstract class FrameworkExtensionTest extends TestCase
$this->assertTrue($container->hasDefinition('web_link.add_link_header_listener'));
}
public function testMessengerServicesRemovedWhenDisabled()
{
$container = $this->createContainerFromFile('messenger_disabled');
$this->assertFalse($container->hasDefinition('console.command.messenger_consume_messages'));
$this->assertFalse($container->hasDefinition('console.command.messenger_debug'));
$this->assertFalse($container->hasDefinition('console.command.messenger_stop_workers'));
$this->assertFalse($container->hasDefinition('console.command.messenger_setup_transports'));
$this->assertFalse($container->hasDefinition('console.command.messenger_failed_messages_retry'));
$this->assertFalse($container->hasDefinition('console.command.messenger_failed_messages_show'));
$this->assertFalse($container->hasDefinition('console.command.messenger_failed_messages_remove'));
$this->assertFalse($container->hasDefinition('cache.messenger.restart_workers_signal'));
}
public function testMessenger()
{
$container = $this->createContainerFromFile('messenger');
$this->assertTrue($container->hasDefinition('console.command.messenger_consume_messages'));
$this->assertTrue($container->hasAlias('message_bus'));
$this->assertTrue($container->getAlias('message_bus')->isPublic());
$this->assertTrue($container->hasAlias('messenger.default_bus'));