8000 Allow to configure or disable the message bus to use · symfony/symfony@215e802 · GitHub
[go: up one dir, main page]

Skip to content

Commit 215e802

Browse files
committed
Allow to configure or disable the message bus to use
1 parent 860d86a commit 215e802

10 files changed

+140
-5
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2014,6 +2014,9 @@ private function addNotifierSection(ArrayNodeDefinition $rootNode, callable $ena
20142014
->arrayNode('notifier')
20152015
->info('Notifier configuration')
20162016
->{$enableIfStandalone('symfony/notifier', Notifier::class)}()
2017+
->children()
2018+
->scalarNode('message_bus')->defaultNull()->info('The message bus to use. Defaults to the default bus if the Messenger component is installed.')->end()
2019+
->end()
20172020
->fixXmlConfig('chatter_transport')
20182021
->children()
20192022
->arrayNode('chatter_transports')

src/Symfony/Bundle/FrameworkBundle/Resources/config/notifier.php

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,24 @@
5252
->tag('notifier.channel', ['channel' => 'browser'])
5353

5454
->set('notifier.channel.chat', ChatChannel::class)
55-
->args([service('chatter.transports'), service('messenger.default_bus')->ignoreOnInvalid()])
55+
->args([
56+
service('chatter.transports'),
57+
abstract_arg('message bus'),
58+
])
5659
->tag('notifier.channel', ['channel' => 'chat'])
5760

5861
->set('notifier.channel.sms', SmsChannel::class)
59-
->args([service('texter.transports'), service('messenger.default_bus')->ignoreOnInvalid()])
62+
->args([
63+
service('texter.transports'),
64+
abstract_arg('message bus'),
65+
])
6066
->tag('notifier.channel', ['channel' => 'sms'])
6167

6268
->set('notifier.channel.email', EmailChannel::class)
63-
->args([service('mailer.transports'), service('messenger.default_bus')->ignoreOnInvalid()])
69+
->args([
70+
service('mailer.transports'),
71+
abstract_arg('message bus'),
72+
])
6473
->tag('notifier.channel', ['channel' => 'email'])
6574

6675
->set('notifier.channel.push', PushChannel::class)
@@ -76,7 +85,7 @@
7685
->set('chatter', Chatter::class)
7786
->args([
7887
service('chatter.transports'),
79-
service('messenger.default_bus')->ignoreOnInvalid(),
88+
abstract_arg('message bus'),
8089
service('event_dispatcher')->ignoreOnInvalid(),
8190
])
8291

@@ -96,7 +105,7 @@
96105
->set('texter', Texter::class)
97106
->args([
98107
service('texter.transports'),
99-
service('messenger.default_bus')->ignoreOnInvalid(),
108+
abstract_arg('message bus'),
100109
service('event_dispatcher')->ignoreOnInvalid(),
101110
])
102111

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,7 @@ class_exists(SemaphoreStore::class) && SemaphoreStore::isSupported() ? 'semaphor
655655
],
656656
'notifier' => [
657657
'enabled' => !class_exists(FullStack::class) && class_exists(Notifier::class),
658+
'message_bus' => null,
658659
'chatter_transports' => [],
659660
'texter_transports' => [],
660661
'channel_policy' => [],
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', [
4+
'messenger' => [
5+
'enabled' => true,
6+
],
7+
'mailer' => [
8+
'dsn' => 'smtp://example.com',
9+
],
10+
'notifier' => [
11+
'message_bus' => false,
12+
'chatter_transports' => [
13+
'test' => 'null'
14+
],
15+
'texter_transports' => [
16+
'test' => 'null'
17+
],
18+
],
19+
]);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', [
4+
'messenger' => [
5+
'enabled' => true,
6+
],
7+
'mailer' => [
8+
'dsn' => 'smtp://example.com',
9+
],
10+
'notifier' => [
11+
'message_bus' => 'app.another_bus',
12+
'chatter_transports' => [
13+
'test' => 'null'
14+
],
15+
'texter_transports' => [
16+
'test' => 'null'
17+
],
18+
],
19+
]);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" ?>
2+
3+
<container xmlns="http://symfony.com/schema/dic/services"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xmlns:framework="http://symfony.com/schema/dic/symfony"
6+
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
7+
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
8+
9+
<framework:config>
10+
<framework:messenger enabled="true" />
11+
<framework:mailer dsn="smtp://example.com" />
12+
<framework:notifier enabled="true" message-bus="false">
13+
<framework:chatter-transport name="test">null</framework:chatter-transport>
14+
<framework:texter-transport name="test">null</framework:texter-transport>
15+
</framework:notifier>
16+
</framework:config>
17+
</container>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" ?>
2+
3+
<container xmlns="http://symfony.com/schema/dic/services"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xmlns:framework="http://symfony.com/schema/dic/symfony"
6+
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
7+
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
8+
9+
<framework:config>
10+
<framework:messenger enabled="true" />
11+
<framework:mailer dsn="smtp://example.com" />
12+
<framework:notifier enabled="true" message-bus="app.another_bus">
13+
<framework:chatter-transport name="test">null</framework:chatter-transport>
14+
<framework:texter-transport name="test">null</framework:texter-transport>
15+
</framework:notifier>
16+
</framework:config>
17+
</container>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
framework:
2+
messenger:
3+
enabled: true
4+
mailer:
5+
dsn: 'smtp://example.com'
6+
notifier:
7+
message_bus: false
8+
chatter_transports:
9+
test: 'null'
10+
texter_transports:
11+
test: 'null'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
framework:
2+
messenger:
3+
enabled: true
4+
mailer:
5+
dsn: 'smtp://example.com'
6+
notifier:
7+
message_bus: 'app.another_bus'
8+
chatter_transports:
9+
test: 'null'
10+
texter_transports:
11+
test: 'null'

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2173,6 +2173,34 @@ public function testHtmlSanitizerDefaultConfig()
21732173
$this->assertSame('html_sanitizer', (string) $container->getAlias(HtmlSanitizerInterface::class));
21742174
}
21752175

2176+
public function testNotifierWithDisabledMessageBus()
2177+
{
2178+
$container = $this->createContainerFromFile('notifier_with_disabled_message_bus');
2179+
2180+
$this->assertNull($container->getDefinition('chatter')->getArgument(1));
2181+
$this->assertNull($container->getDefinition('texter')->getArgument(1));
2182+
$this->assertNull($container->getDefinition('notifier.channel.chat')->getArgument(1));
2183+
$this->assertNull($container->getDefinition('notifier.channel.email')->getArgument(1));
2184+
$this->assertNull($container->getDefinition('notifier.channel.sms')->getArgument(1));
2185+
}
2186+
2187+
public function testNotifierWithSpecificMessageBus()
2188+
{
2189+
$container = $this->createContainerFromFile('notifier_with_specific_message_bus');
2190+
2191+
$this->assertEquals(new Reference('app.another_bus'), $container->getDefinition('chatter')->getArgument(1));
2192+
$this->assertEquals(new Reference('app.another_bus'), $container->getDefinition('texter')->getArgument(1));
2193+
$this->assertEquals(new Reference('app.another_bus'), $container->getDefinition('notifier.channel.chat')->getArgument(1));
2194+
$this->assertEquals(new Reference('app.another_bus'), $container->getDefinition('notifier.channel.email')->getArgument(1));
2195+
$this->assertEquals(new Reference('app.another_bus'), $container->getDefinition('notifier.channel.sms')->getArgument(1));
2196+
2197+
$this->assertNull($container->getDefinition('chatter')->getArgument(0));
2198+
$this->assertNull($container->getDefinition('texter')->getArgument(0));
2199+
$this->assertNull($container->getDefinition('notifier.channel.chat')->getArgument(0));
2200+
$this->assertNull($container->getDefinition('notifier.channel.email')->getArgument(0));
2201+
$this->assertNull($container->getDefinition('notifier.channel.sms')->getArgument(0));
2202+
}
2203+
21762204
protected function createContainer(array $data = [])
21772205
{
21782206
return new ContainerBuilder(new EnvPlaceholderParameterBag(array_merge([

0 commit comments

Comments
 (0)
0