diff --git a/DependencyInjection/DoctrineExtension.php b/DependencyInjection/DoctrineExtension.php index 3c8b3b6c9..0c0c6d4e9 100644 --- a/DependencyInjection/DoctrineExtension.php +++ b/DependencyInjection/DoctrineExtension.php @@ -24,8 +24,8 @@ use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Messenger\Bridge\Doctrine\Transport\DoctrineTransportFactory; use Symfony\Component\Messenger\MessageBusInterface; -use Symfony\Component\Messenger\Transport\Doctrine\DoctrineTransportFactory; use Symfony\Component\PropertyInfo\PropertyInfoExtractorInterface; use function class_exists; use function sprintf; @@ -842,11 +842,17 @@ private function loadMessengerServices(ContainerBuilder $container) : void $container->removeDefinition('doctrine.orm.messenger.event_subscriber.doctrine_clear_entity_manager'); } + $transportFactoryDefinition = $container->getDefinition('messenger.transport.doctrine.factory'); if (! class_exists(DoctrineTransportFactory::class)) { - return; + // If symfony/messenger < 5.1 + if (! class_exists(\Symfony\Component\Messenger\Transport\Doctrine\DoctrineTransportFactory::class)) { + // Dont add the tag + return; + } + + $transportFactoryDefinition->setClass(\Symfony\Component\Messenger\Transport\Doctrine\DoctrineTransportFactory::class); } - $transportFactoryDefinition = $container->getDefinition('messenger.transport.doctrine.factory'); $transportFactoryDefinition->addTag('messenger.transport_factory'); } diff --git a/Resources/config/messenger.xml b/Resources/config/messenger.xml index f6ae1cf9c..71adb09a7 100644 --- a/Resources/config/messenger.xml +++ b/Resources/config/messenger.xml @@ -32,7 +32,7 @@ The following service isn't tagged as transport factory because the class may not exist. The tag is added conditionally in DoctrineExtension. --> - +