diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
index 1d4f669ad521..00c6f3234847 100644
--- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
@@ -87,6 +87,8 @@
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 @@ public function load(array $configs, ContainerBuilder $container)
$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 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
$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 14117ee8e40a..9d30261c7357 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml
+++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml
@@ -67,13 +67,9 @@
-
-
-
+
-
-
-
+