From 650c9f3f4b40a03bb36649ef1dfc86f9f2dd3861 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Sat, 29 Feb 2020 16:27:30 +0100 Subject: [PATCH] register only existing transport factories --- .../FrameworkExtension.php | 20 +++++++++++++++++++ .../Resources/config/messenger.xml | 8 ++------ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 1d4f669ad5..00c6f32348 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -87,6 +87,8 @@ use Symfony\Component\Mailer\Mailer; use Symfony\Component\Messenger\Handler\MessageHandlerInterface; use Symfony\Component\Messenger\MessageBus; use Symfony\Component\Messenger\MessageBusInterface; +use Symfony\Component\Messenger\Transport\AmqpExt\AmqpTransportFactory; +use Symfony\Component\Messenger\Transport\RedisExt\RedisTransportFactory; use Symfony\Component\Messenger\Transport\TransportFactoryInterface; use Symfony\Component\Messenger\Transport\TransportInterface; use Symfony\Component\Mime\MimeTypeGuesserInterface; @@ -314,6 +316,16 @@ class FrameworkExtension extends Extension $container->removeDefinition('console.command.messenger_failed_messages_show'); $container->removeDefinition('console.command.messenger_failed_messages_remove'); $container->removeDefinition('cache.messenger.restart_workers_signal'); + + if ($container->hasDefinition('messenger.transport.amqp.factory') && class_exists(AmqpTransportFactory::class)) { + $container->getDefinition('messenger.transport.amqp.factory') + ->addTag('messenger.transport_factory'); + } + + if ($container->hasDefinition('messenger.transport.redis.factory') && class_exists(RedisTransportFactory::class)) { + $container->getDefinition('messenger.transport.redis.factory') + ->addTag('messenger.transport_factory'); + } } if ($this->httpClientConfigEnabled = $this->isConfigEnabled($container, $config['http_client'])) { @@ -1707,6 +1719,14 @@ class FrameworkExtension extends Extension $loader->load('messenger.xml'); + if (class_exists(AmqpTransportFactory::class)) { + $container->getDefinition('messenger.transport.amqp.factory')->addTag('messenger.transport_factory'); + } + + if (class_exists(RedisTransportFactory::class)) { + $container->getDefinition('messenger.transport.redis.factory')->addTag('messenger.transport_factory'); + } + if (null === $config['default_bus'] && 1 === \count($config['buses'])) { $config['default_bus'] = key($config['buses']); } diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml index 14117ee8e4..9d30261c73 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml @@ -67,13 +67,9 @@ - - - + - - - +