Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 39861be

Browse filesBrowse files
committed
Fix framework configuration when messenger uses without console
1 parent 7589f3d commit 39861be
Copy full SHA for 39861be

File tree

2 files changed

+32
-9
lines changed
Filter options

2 files changed

+32
-9
lines changed

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

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
+11-7Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ public function load(array $configs, ContainerBuilder $container)
242242

243243
$container->registerAliasForArgument('parameter_bag', PsrContainerInterface::class);
244244

245-
if (class_exists(Application::class)) {
245+
if ($this->hasConsole()) {
246246
$loader->load('console.php');
247247

248248
if (!class_exists(BaseXliffLintCommand::class)) {
@@ -599,6 +599,11 @@ public function getConfiguration(array $config, ContainerBuilder $container)
599599
return new Configuration($container->getParameter('kernel.debug'));
600600
}
601601

602+
protected function hasConsole(): bool
603+
{
604+
return class_exists(Application::class);
605+
}
606+
602607
private function registerFormConfiguration(array $config, ContainerBuilder $container, PhpFileLoader $loader)
603608
{
604609
$loader->load('form.php');
@@ -2081,13 +2086,12 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
20812086
throw new LogicException('The "framework.messenger.reset_on_message" configuration option can be set to "true" only. To prevent services resetting after each message you can set the "--no-reset" option in "messenger:consume" command.');
20822087
}
20832088

2084-
if (null === $config['reset_on_message']) {
2085-
if ($container->hasDefinition('console.command.messenger_consume_messages')) {
2086-
trigger_deprecation('symfony/framework-bundle', '5.4', 'Not setting the "framework.messenger.reset_on_message" configuration option is deprecated, it will default to "true" in version 6.0.');
2087-
2088-
$container->getDefinition('console.command.messenger_consume_messages')->replaceArgument(5, null);
2089-
}
2089+
if (!$container->hasDefinition('console.command.messenger_consume_messages')) {
2090+
$container->removeDefinition('messenger.listener.reset_services');
2091+
} elseif (null === $config['reset_on_message']) {
2092+
trigger_deprecation('symfony/framework-bundle', '5.4', 'Not setting the "framework.messenger.reset_on_message" configuration option is deprecated, it will default to "true" in version 6.0.');
20902093

2094+
$container->getDefinition('console.command.messenger_consume_messages')->replaceArgument(5, null);
20912095
$container->removeDefinition('messenger.listener.reset_services');
20922096
}
20932097
}

‎src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php
+21-2Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -746,6 +746,25 @@ public function testMessenger()
746746
$this->assertSame('messenger.listener.reset_services', (string) $container->getDefinition('console.command.messenger_consume_messages')->getArgument(5));
747747
}
748748

749+
public function testMessengerWithoutConsole()
750+
{
751+
$extension = $this->createPartialMock(FrameworkExtension::class, ['hasConsole', 'getAlias']);
752+
$extension->method('hasConsole')->willReturn(false);
753+
$extension->method('getAlias')->willReturn((new FrameworkExtension())->getAlias());
754+
755+
$container = $this->createContainerFromFile('messenger', [], true, false, $extension);
756+
$container->compile();
757+
758+
$this->assertFalse($container->hasDefinition('console.command.messenger_consume_messages'));
759+
$this->assertTrue($container->hasAlias('messenger.default_bus'));
760+
$this->assertTrue($container->getAlias('messenger.default_bus')->isPublic());
761+
$this->assertTrue($container->hasDefinition('messenger.transport.amqp.factory'));
762+
$this->assertTrue($container->hasDefinition('messenger.transport.redis.factory'));
763+
$this->assertTrue($container->hasDefinition('messenger.transport_factory'));
764+
$this->assertSame(TransportFactory::class, $container->getDefinition('messenger.transport_factory')->getClass());
765+
$this->assertFalse($container->hasDefinition('messenger.listener.reset_services'));
766+
}
767+
749768
public function testMessengerMultipleFailureTransports()
750769
{
751770
$container = $this->createContainerFromFile('messenger_multiple_failure_transports');
@@ -1960,14 +1979,14 @@ protected function createContainer(array $data = [])
19601979
], $data)));
19611980
}
19621981

1963-
protected function createContainerFromFile($file, $data = [], $resetCompilerPasses = true, $compile = true)
1982+
protected function createContainerFromFile($file, $data = [], $resetCompilerPasses = true, $compile = true, FrameworkExtension $extension = null)
19641983
{
19651984
$cacheKey = md5(static::class.$file.serialize($data));
19661985
if ($compile && isset(self::$containerCache[$cacheKey])) {
19671986
return self::$containerCache[$cacheKey];
19681987
}
19691988
$container = $this->createContainer($data);
1970-
$container->registerExtension(new FrameworkExtension());
1989+
$container->registerExtension($extension ?: new FrameworkExtension());
19711990
$this->loadFromFile($container, $file);
19721991

19731992
if ($resetCompilerPasses) {

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.