From c8c95c0797a67339acb3ed6537980fa595447d8f Mon Sep 17 00:00:00 2001 From: Dominik Pfaffenbauer Date: Wed, 16 Nov 2022 09:41:18 +0100 Subject: [PATCH 1/2] [MessengerBundle] fix for failure receivers if non are configured --- .../CompilerPass/FailureReceiverPass.php | 7 ++++++- .../CompilerPass/ReceiverPass.php | 15 ++++++++++++--- src/CoreShop/Bundle/MessengerBundle/composer.json | 5 +++++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/CoreShop/Bundle/MessengerBundle/DependencyInjection/CompilerPass/FailureReceiverPass.php b/src/CoreShop/Bundle/MessengerBundle/DependencyInjection/CompilerPass/FailureReceiverPass.php index f3b27e4a6a..02799c0d95 100755 --- a/src/CoreShop/Bundle/MessengerBundle/DependencyInjection/CompilerPass/FailureReceiverPass.php +++ b/src/CoreShop/Bundle/MessengerBundle/DependencyInjection/CompilerPass/FailureReceiverPass.php @@ -20,7 +20,9 @@ use CoreShop\Bundle\MessengerBundle\Messenger\FailureReceiversRepository; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Definition; final class FailureReceiverPass implements CompilerPassInterface { @@ -36,7 +38,10 @@ public function process(ContainerBuilder $container): void $failureReceivers = $container->getDefinition(FailureReceiversRepository::class); if (!$container->hasDefinition('messenger.failure.send_failed_message_to_failure_transport_listener')) { - $failureReceivers->replaceArgument(0, null); + $emptyContainer = new Definition(Container::class); + + $failureReceivers->replaceArgument(0, $emptyContainer); + $failureReceivers->replaceArgument(1, []); return; } diff --git a/src/CoreShop/Bundle/MessengerBundle/DependencyInjection/CompilerPass/ReceiverPass.php b/src/CoreShop/Bundle/MessengerBundle/DependencyInjection/CompilerPass/ReceiverPass.php index c8961e6d30..25736e8008 100755 --- a/src/CoreShop/Bundle/MessengerBundle/DependencyInjection/CompilerPass/ReceiverPass.php +++ b/src/CoreShop/Bundle/MessengerBundle/DependencyInjection/CompilerPass/ReceiverPass.php @@ -26,13 +26,22 @@ final class ReceiverPass implements CompilerPassInterface { public function process(ContainerBuilder $container): void { - if ($container->hasDefinition(ReceiversRepository::class) - && $container->hasDefinition('console.command.messenger_consume_messages')) { - $receiverLocatorDefinition = $container->getDefinition(ReceiversRepository::class); + if (!$container->hasDefinition(ReceiversRepository::class)) { + return; + } + + $receiverLocatorDefinition = $container->getDefinition(ReceiversRepository::class); + if ($container->hasDefinition('console.command.messenger_consume_messages')) { $consumeCommandDefinition = $container->getDefinition('console.command.messenger_consume_messages'); $names = $consumeCommandDefinition->getArgument(4); $receiverLocatorDefinition->replaceArgument(1, $names); } + else { + $emptyContainer = new Definition(Container::class); + + $receiverLocatorDefinition->replaceArgument(0, $emptyContainer); + $receiverLocatorDefinition->replaceArgument(1, []); + } } } diff --git a/src/CoreShop/Bundle/MessengerBundle/composer.json b/src/CoreShop/Bundle/MessengerBundle/composer.json index b667e1e1d0..0419297c57 100644 --- a/src/CoreShop/Bundle/MessengerBundle/composer.json +++ b/src/CoreShop/Bundle/MessengerBundle/composer.json @@ -49,6 +49,11 @@ "extra": { "branch-alias": { "dev-master": "3.0-dev" + }, + "pimcore": { + "bundles": [ + "CoreShop\\Bundle\\MessengerBundle\\CoreShopMessengerBundle" + ] } }, "config": { From aea8fb969554613b25fa03cc8cf27600c66c9c40 Mon Sep 17 00:00:00 2001 From: Dominik Pfaffenbauer Date: Wed, 16 Nov 2022 09:46:53 +0100 Subject: [PATCH 2/2] [MessengerBundle] fix for failure receivers if non are configured --- .../DependencyInjection/CompilerPass/ReceiverPass.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/CoreShop/Bundle/MessengerBundle/DependencyInjection/CompilerPass/ReceiverPass.php b/src/CoreShop/Bundle/MessengerBundle/DependencyInjection/CompilerPass/ReceiverPass.php index 25736e8008..e92f93f6e6 100755 --- a/src/CoreShop/Bundle/MessengerBundle/DependencyInjection/CompilerPass/ReceiverPass.php +++ b/src/CoreShop/Bundle/MessengerBundle/DependencyInjection/CompilerPass/ReceiverPass.php @@ -20,7 +20,9 @@ use CoreShop\Bundle\MessengerBundle\Messenger\ReceiversRepository; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Definition; final class ReceiverPass implements CompilerPassInterface {