8000 bug #35907 [FrameworkBundle] register only existing transport factori… · symfony/symfony@2265a57 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2265a57

Browse files
committed
bug #35907 [FrameworkBundle] register only existing transport factories (xabbuh)
This PR was merged into the 5.1-dev branch. Discussion ---------- [FrameworkBundle] register only existing transport factories | Q | A | ------------- | --- | Branch? | 5.1 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | Fix #35866 | License | MIT | Doc PR | Commits ------- 24322cf register only existing transport factories
2 parents 645ccc8 + 24322cf commit 2265a57

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
use Symfony\Component\Mailer\Bridge\Postmark\Transport\PostmarkTransportFactory;
8282
use Symfony\Component\Mailer\Bridge\Sendgrid\Transport\SendgridTransportFactory;
8383
use Symfony\Component\Mailer\Mailer;
84+
use Symfony\Component\Messenger\Bridge\AmazonSqs\Transport\AmazonSqsTransportFactory;
8485
use Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpTransportFactory;
8586
use Symfony\Component\Messenger\Bridge\Redis\Transport\RedisTransportFactory;
8687
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
@@ -321,14 +322,24 @@ public function load(array $configs, ContainerBuilder $container)
321322
$container->removeDefinition('console.command.messenger_failed_messages_remove');
322323
$container->removeDefinition('cache.messenger.restart_workers_signal');
323324

324-
if ($container->hasDefinition('messenger.transport.amqp.factory') && class_exists(AmqpTransportFactory::class)) {
325-
$container->getDefinition('messenger.transport.amqp.factory')
326-
->addTag('messenger.transport_factory');
325+
if ($container->hasDefinition('messenger.transport.amqp.factory') && !class_exists(AmqpTransportFactory::class)) {
326+
if (class_exists(\Symfony\Component\Messenger\Transport\AmqpExt\AmqpTransportFactory::class)) {
327+
$container->getDefinition('messenger.transport.amqp.factory')
328+
->setClass(\Symfony\Component\Messenger\Transport\AmqpExt\AmqpTransportFactory::class)
329+
->addTag('messenger.transport_factory');
330+
} else {
331+
$container->removeDefinition('messenger.transport.amqp.factory');
332+
}
327333
}
328334

329-
if ($container->hasDefinition('messenger.transport.redis.factory') && class_exists(RedisTransportFactory::class)) {
330-
$container->getDefinition('messenger.transport.redis.factory')
331-
->addTag('messenger.transport_factory');
335+
if ($container->hasDefinition('messenger.transport.redis.factory') && !class_exists(RedisTransportFactory::class)) {
336+
if (class_exists(\Symfony\Component\Messenger\Transport\RedisExt\RedisTransportFactory::class)) {
337+
$container->getDefinition('messenger.transport.redis.factory')
338+
->setClass(\Symfony\Component\Messenger\Transport\RedisExt\RedisTransportFactory::class)
339+
->addTag('messenger.transport_factory');
340+
} else {
341+
$container->removeDefinition('messenger.transport.redis.factory');
342+
}
332343
}
333344
}
334345

@@ -1615,6 +1626,10 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
16151626
$container->getDefinition('messenger.transport.redis.factory')->addTag('messenger.transport_factory');
16161627
}
16171628

1629+
if (class_exists(AmazonSqsTransportFactory::class)) {
1630+
$container->getDefinition('messenger.transport.sqs.factory')->addTag('messenger.transport_factory');
1631+
}
1632+
16181633
if (null === $config['default_bus'] && 1 === \count($config['buses'])) {
16191634
$config['default_bus'] = key($config['buses']);
16201635
}
@@ -1672,6 +1687,7 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
16721687
$container->removeDefinition('messenger.transport.symfony_serializer');
16731688
$container->removeDefinition('messenger.transport.amqp.factory');
16741689
$container->removeDefinition('messenger.transport.redis.factory');
1690+
$container->removeDefinition('messenger.transport.sqs.factory');
16751691
} else {
16761692
$container->getDefinition('messenger.transport.symfony_serializer')
16771693
->replaceArgument(1, $config['serializer']['symfony_serializer']['format'])

src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.xml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,7 @@
8181
<tag name="kernel.reset" method="reset" />
8282
</service>
8383

84-
<service id="messenger.transport.sqs.factory" class="Symfony\Component\Messenger\Bridge\AmazonSqs\Transport\AmazonSqsTransportFactory">
85-
<tag name="messenger.transport_factory" />
86-
</service>
84+
<service id="messenger.transport.sqs.factory" class="Symfony\Component\Messenger\Bridge\AmazonSqs\Transport\AmazonSqsTransportFactory"/>
8785

8886
<!-- retry -->
8987
<service id="messenger.retry_strategy_locator">

0 commit comments

Comments
 (0)
0