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

Skip to content

Commit 95718bb

Browse files
jschaedlfabpot
authored andcommitted
Allow to configure or disable the message bus to use
1 parent 8876dbc commit 95718bb

11 files changed

+158
-5
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1979,6 +1979,9 @@ private function addNotifierSection(ArrayNodeDefinition $rootNode, callable $ena
19791979
->arrayNode('notifier')
19801980
->info('Notifier configuration')
19811981
->{$enableIfStandalone('symfony/notifier', Notifier::class)}()
1982+
->children()
1983+
->scalarNode('message_bus')->defaultNull()->info('The message bus to use. Defaults to the default bus if the Messenger component is installed.')->end()
1984+
->end()
19821985
->fixXmlConfig('chatter_transport')
19831986
->children()
19841987
->arrayNode('chatter_transports')

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2501,6 +2501,24 @@ private function registerNotifierConfiguration(array $config, ContainerBuilder $
25012501
$container->removeDefinition('notifier.channel.email');
25022502
}
25032503

2504+
$servicesWithBusArgument = ['texter', 'chatter', 'notifier.channel.chat', 'notifier.channel.email', 'notifier.channel.sms'];
2505+
if (false === $messageBus = $config['message_bus']) {
2506+
foreach ($servicesWithBusArgument as $serviceId) {
2507+
if ($container->hasDefinition($serviceId)) {
2508+
$container->getDefinition($serviceId)->replaceArgument(1, null);
2509+
}
2510+
}
2511+
} else {
2512+
foreach ($servicesWithBusArgument as $serviceId) {
2513+
if ($container->hasDefinition($serviceId)) {
2514+
$container->getDefinition($serviceId)
2515+
->setArgument(0, null)
2516+
->replaceArgument(1, new Reference($messageBus, ContainerInterface::NULL_ON_INVALID_REFERENCE))
2517+
;
2518+
}
2519+
}
2520+
}
2521+
25042522
if ($this->messengerConfigEnabled) {
25052523
if ($config['notification_on_failed_messages']) {
25062524
$container->getDefinition('notifier.failed_message_listener')->addTag('kernel.event_subscriber');

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
@@ -623,6 +623,7 @@ class_exists(SemaphoreStore::class) && SemaphoreStore::isSupported() ? 'semaphor
623623
],
624624
'notifier' => [
625625
'enabled' => !class_exists(FullStack::class) && class_exists(Notifier::class),
626+
'message_bus' => null,
626627
'chatter_transports' => [],
627628
'texter_transports' => [],
628629
'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'

0 commit comments

Comments
 (0)
0