From 5d739704f2a0ad0de0ac34db9730681da99da4d5 Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Sun, 28 Jul 2019 22:26:18 +0200 Subject: [PATCH] [Messenger] Fix incompatibility with FrameworkBundle <4.3.1 --- .../FrameworkBundle/Resources/config/console.xml | 2 +- .../Messenger/Command/ConsumeMessagesCommand.php | 2 ++ .../Messenger/DependencyInjection/MessengerPass.php | 11 ++++++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/console.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/console.xml index ebd7d6ce46..c0d185a00f 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/console.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/console.xml @@ -82,7 +82,7 @@ - + diff --git a/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php b/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php index be6f4c1733..79c4aa3597 100644 --- a/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php +++ b/src/Symfony/Component/Messenger/Command/ConsumeMessagesCommand.php @@ -57,6 +57,8 @@ class ConsumeMessagesCommand extends Command // to be deprecated in 4.4 if ($routableBus instanceof ContainerInterface) { $routableBus = new RoutableMessageBus($routableBus); + } elseif (!$routableBus instanceof RoutableMessageBus) { + throw new \TypeError(sprintf('The first argument must be an instance of "%s".', RoutableMessageBus::class)); } if (\is_array($retryStrategyLocator)) { diff --git a/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php b/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php index b83272792f..8836c4ac83 100644 --- a/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php +++ b/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php @@ -253,14 +253,19 @@ class MessengerPass implements CompilerPassInterface $buses[$busId] = new Reference($busId); } - if ($container->hasDefinition('messenger.routable_message_bus')) { + if ($hasRoutableMessageBus = $container->hasDefinition('messenger.routable_message_bus')) { $container->getDefinition('messenger.routable_message_bus') ->replaceArgument(0, ServiceLocatorTagPass::register($container, $buses)); } if ($container->hasDefinition('console.command.messenger_consume_messages')) { - $container->getDefinition('console.command.messenger_consume_messages') - ->replaceArgument(3, array_values($receiverNames)); + $consumeCommandDefinition = $container->getDefinition('console.command.messenger_consume_messages'); + + if ($hasRoutableMessageBus) { + $consumeCommandDefinition->replaceArgument(0, new Reference('messenger.routable_message_bus')); + } + + $consumeCommandDefinition->replaceArgument(3, array_values($receiverNames)); } if ($container->hasDefinition('console.command.messenger_setup_transports')) {