diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
index 039f550a6f..a82aad5d6d 100644
--- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
@@ -81,6 +81,7 @@ use Symfony\Component\Mailer\Bridge\Mailgun\Transport\MailgunTransportFactory;
use Symfony\Component\Mailer\Bridge\Postmark\Transport\PostmarkTransportFactory;
use Symfony\Component\Mailer\Bridge\Sendgrid\Transport\SendgridTransportFactory;
use Symfony\Component\Mailer\Mailer;
+use Symfony\Component\Messenger\Bridge\AmazonSqs\Transport\AmazonSqsTransportFactory;
use Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpTransportFactory;
use Symfony\Component\Messenger\Bridge\Redis\Transport\RedisTransportFactory;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
@@ -321,14 +322,24 @@ class FrameworkExtension extends Extension
$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.amqp.factory') && !class_exists(AmqpTransportFactory::class)) {
+ if (class_exists(\Symfony\Component\Messenger\Transport\AmqpExt\AmqpTransportFactory::class)) {
+ $container->getDefinition('messenger.transport.amqp.factory')
+ ->setClass(\Symfony\Component\Messenger\Transport\AmqpExt\AmqpTransportFactory::class)
+ ->addTag('messenger.transport_factory');
+ } else {
+ $container->removeDefinition('messenger.transport.amqp.factory');
+ }
}
- if ($container->hasDefinition('messenger.transport.redis.factory') && class_exists(RedisTransportFactory::class)) {
- $container->getDefinition('messenger.transport.redis.factory')
- ->addTag('messenger.transport_factory');
+ if ($container->hasDefinition('messenger.transport.redis.factory') && !class_exists(RedisTransportFactory::class)) {
+ if (class_exists(\Symfony\Component\Messenger\Transport\RedisExt\RedisTransportFactory::class)) {
+ $container->getDefinition('messenger.transport.redis.factory')
+ ->setClass(\Symfony\Component\Messenger\Transport\RedisExt\RedisTransportFactory::class)
+ ->addTag('messenger.transport_factory');
+ } else {
+ $container->removeDefinition('messenger.transport.redis.factory');
+ }
}
}
@@ -1615,6 +1626,10 @@ class FrameworkExtension extends Extension
$container->getDefinition('messenger.transport.redis.factory')->addTag('messenger.transport_factory');
}
+ if (class_exists(AmazonSqsTransportFactory::class)) {
+ $container->getDefinition('messenger.transport.sqs.factory')->addTag('messenger.transport_factory');
+ }
+
if (null === $config['default_bus'] && 1 === \count($config['buses'])) {
$config['default_bus'] = key($config['buses']);
}
@@ -1672,6 +1687,7 @@ class FrameworkExtension extends Extension
$container->removeDefinition('messenger.transport.symfony_serializer');
$container->removeDefinition('messenger.transport.amqp.factory');
$container->removeDefinition('messenger.transport.redis.factory');
+ $container->removeDefinition('messenger.transport.sqs.factory');
} else {
$container->getDefinition('messenger.transport.symfony_serializer')
->replaceArgument(1, $config['serializer']['symfony_serializer']['format'])
diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml
index 56f54d08df..1cd003170d 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml
+++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml
@@ -81,9 +81,7 @@
-
-
-
+