8000 [Notifier] Move configuration yo PHP · symfony/symfony@9891809 · GitHub
[go: up one dir, main page]

Skip to content

Commit 9891809

Browse files
committed
[Notifier] Move configuration yo PHP
1 parent 9b08626 commit 9891809

File tree

5 files changed

+187
-155
lines changed

5 files changed

+187
-155
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ public function load(array $configs, ContainerBuilder $container)
360360
}
361361
362362
if ($this->isConfigEnabled($container, $config['notifier'])) {
363-
$this->registerNotifierConfiguration($config['notifier'], $container, $loader);
363+
$this->registerNotifierConfiguration($config['notifier'], $container, $phpLoader);
364364
}
365365

366366
$propertyInfoEnabled = $this->isConfigEnabled($container, $config['property_info']);
@@ -2010,14 +2010,14 @@ private function registerMailerConfiguration(array $config, ContainerBuilder $co
20102010
}
20112011
}
20122012

2013-
private function registerNotifierConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
2013+
private function registerNotifierConfiguration(array $config, ContainerBuilder $container, PhpFileLoader $loader)
20142014
{
20152015
if (!class_exists(Notifier::class)) {
20162016
throw new LogicException('Notifier support cannot be enabled as the component is not installed. Try running "composer require symfony/notifier".');
20172017
}
20182018

2019-
$loader->load('notifier.xml');
2020-
$loader->load('notifier_transports.xml');
2019+
$loader->load('notifier.php');
2020+
$loader->load('notifier_transports.php');
20212021

20222022
if ($config['chatter_transports']) {
20232023
$container->getDefinition('chatter.transports')->setArgument(0, $config['chatter_transports']);
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* F 8000 or the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
13+
14+
use Symfony\Bridge\Monolog\Handler\NotifierHandler;
15+
use Symfony\Component\Notifier\Channel\BrowserChannel;
16+
use Symfony\Component\Notifier\Channel\ChannelPolicy;
17+
use Symfony\Component\Notifier\Channel\ChatChannel;
18+
use Symfony\Component\Notifier\Channel\EmailChannel;
19+
use Symfony\Component\Notifier\Channel\SmsChannel;
20+
use Symfony\Component\Notifier\Chatter;
21+
use Symfony\Component\Notifier\ChatterInterface;
22+
use Symfony\Component\Notifier\EventListener\SendFailedMessageToNotifierListener;
23+
use Symfony\Component\Notifier\Message\ChatMessage;
24+
use Symfony\Component\Notifier\Message\SmsMessage;
25+
use Symfony\Component\Notifier\Messenger\MessageHandler;
26+
use Symfony\Component\Notifier\Notifier;
27+
use Symfony\Component\Notifier\NotifierInterface;
28+
use Symfony\Component\Notifier\Texter;
29+
use Symfony\Component\Notifier\TexterInterface;
30+
use Symfony\Component\Notifier\Transport;
31+
use Symfony\Component\Notifier\Transport\Transports;
32+
33+
return static function (ContainerConfigurator $container) {
34+
$container->services()
35+
->set('notifier', Notifier::class)
36+
->args([tagged_locator('notifier.channel', 'channel'), service('notifier.channel_policy')->ignoreOnInvalid()])
37+
38+
->alias(NotifierInterface::class, 'notifier')
39+
40+
->set('notifier.channel_policy', ChannelPolicy::class)
41+
->args([[]])
42+
43+
->set('notifier.channel.browser', BrowserChannel::class)
44+
->args([service('request_stack')])
45+
->tag('notifier.channel', ['channel' => 'browser'])
46+
47+
->set('notifier.channel.chat', ChatChannel::class)
48+
->args([service('chatter.transports'), service('messenger.default_bus')->ignoreOnInvalid()])
49+
->tag('notifier.channel', ['channel' => 'chat'])
50+
51+
->set('notifier.channel.sms', SmsChannel::class)
52+
->args([service('texter.transports'), service('messenger.default_bus')->ignoreOnInvalid()])
53+
->tag('notifier.channel', ['channel' => 'sms'])
54+
55+
->set('notifier.channel.email', EmailChannel::class)
56+
->args([service('mailer.transports'), service('messenger.default_bus')->ignoreOnInvalid()])
57+
->tag('notifier.channel', ['channel' => 'email'])
58+
59+
->set('notifier.monolog_handler', NotifierHandler::class)
60+
->args([service('notifier')])
61+
62+
->set('notifier.failed_message_listener', SendFailedMessageToNotifierListener::class)
63+
->args([service('notifier')])
64+
65+
->set('chatter', Chatter::class)
66+
->args([
67+
service('chatter.transports'),
68+
service('messenger.default_bus')->ignoreOnInvalid(),
69+
service('event_dispatcher')->ignoreOnInvalid(),
70+
])
71+
72+
->alias(ChatterInterface::class, 'chatter')
73+
74+
->set('chatter.transports', Transports::class)
75+
->factory(['chatter.transport_factory', 'fromStrings'])
76+
->args([[]])
77+
78+
->set('chatter.transport_factory', Transport::class)
79+
->args([tagged_iterator('chatter.transport_factory')])
80+
81+
->set('chatter.messenger.chat_handler', MessageHandler::class)
82+
->args([service('chatter.transports')])
83+
->tag('messenger.message_handler', ['handles' => ChatMessage::class])
84+
85+
->set('texter', Texter::class)
86+
->args([
87+
service('texter.transports'),
88+
service('messenger.default_bus')->ignoreOnInvalid(),
89+
service('event_dispatcher')->ignoreOnInvalid(),
90+
])
91+
92+
->alias(TexterInterface::class, 'texter')
93+
94+
->set('texter.transports', Transports::class)
95+
->factory(['texter.transport_factory', 'fromStrings'])
96+
->args([[]])
97+
98+
->set('texter.transport_factory', Transport::class)
99+
->args([tagged_iterator('texter.transport_factory')])
100+
101+
->set('texter.messenger.sms_handler', MessageHandler::class)
102+
->args([service('texter.transports')])
103+
->tag('messenger.message_handler', ['handles' => SmsMessage::class])
104+
;
105+
};

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

Lines changed: 0 additions & 93 deletions
This file was deleted.
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
13+
14+
use Symfony\Component\Notifier\Bridge\Firebase\FirebaseTransportFactory;
15+
use Symfony\Component\Notifier\Bridge\FreeMobile\FreeMobileTransportFactory;
16+
use Symfony\Component\Notifier\Bridge\Mattermost\MattermostTransportFactory;
17+
use Symfony\Component\Notifier\Bridge\Nexmo\NexmoTransportFactory;
18+
use Symfony\Component\Notifier\Bridge\OvhCloud\OvhCloudTransportFactory;
19+
use Symfony\Component\Notifier\Bridge\RocketChat\RocketChatTransportFactory;
20+
use Symfony\Component\Notifier\Bridge\Sinch\SinchTransportFactory;
21+
use Symfony\Component\Notifier\Bridge\Slack\SlackTransportFactory;
22+
use Symfony\Component\Notifier\Bridge\Telegram\TelegramTransportFactory;
23+
use Symfony\Component\Notifier\Bridge\Twilio\TwilioTransportFactory;
24+
use Symfony\Component\Notifier\Transport\AbstractTransportFactory;
25+
use Symfony\Component\Notifier\Transport\NullTransportFactory;
26+
27+
return static function (ContainerConfigurator $container) {
28+
$container->services()
29+
->set('notifier.transport_factory.abstract', AbstractTransportFactory::class)
30+
->abstract()
31+
->args([service('event_dispatcher'), service('http_client')->ignoreOnInvalid()])
32+
33+
->set('notifier.transport_factory.slack', SlackTransportFactory::class)
34+
->parent('notifier.transport_factory.abstract')
35+
->tag('chatter.transport_factory')
36+
37+
->set('notifier.transport_factory.telegram', TelegramTransportFactory::class)
38+
->parent('notifier.transport_factory.abstract')
39+
->tag('chatter.transport_factory')
40+
41+
->set('notifier.transport_factory.mattermost', MattermostTransportFactory::class)
42+
->parent('notifier.transport_factory.abstract')
43+
->tag('chatter.transport_factory')
44+
45+
->set('notifier.transport_factory.nexmo', NexmoTransportFactory::class)
46+
->parent('notifier.transport_factory.abstract')
47+
->tag('texter.transport_factory')
48+
49+
->set('notifier.transport_factory.rocketchat', RocketChatTransportFactory::class)
50+
->parent('notifier.transport_factory.abstract')
51+
->tag('chatter.transport_factory')
52+
53+
->set('notifier.transport_factory.twilio', TwilioTransportFactory::class)
54+
->parent('notifier.transport_factory.abstract')
55+
->tag('texter.transport_factory')
56+
57+
->set('notifier.transport_factory.firebase', FirebaseTransportFactory::class)
58+
->parent('notifier.transport_factory.abstract')
59+
->tag('texter.transport_factory')
60+
61+
->set('notifier.transport_factory.freemobile', FreeMobileTransportFactory::class)
62+
->parent('notifier.transport_factory.abstract')
63+
->tag('texter.transport_factory')
64+
65+
->set('notifier.transport_factory.ovhcloud', OvhCloudTransportFactory::class)
66+
->parent('notifier.transport_factory.abstract')
67+
->tag('texter.transport_factory')
68+
69+
->set('notifier.transport_factory.sinch', SinchTransportFactory::class)
70+
->parent('notifier.transport_factory.abstract')
71+
->tag('texter.transport_factory')
72+
73+
->set('notifier.transport_factory.null', NullTransportFactory::class)
74+
->parent('notifier.transport_factory.abstract')
75+
->tag('chatter.transport_factory')
76+
->tag('texter.transport_factory')
77+
;
78+
};

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

Lines changed: 0 additions & 58 deletions
This file was deleted.

0 commit comments

Comments
 (0)
0