Skip to content

Commit 40c16ed

Browse files
committed
feature #39402 [Notifier] Add push channel to notifier (norkunas)
This PR was squashed before being merged into the 5.4 branch. Discussion ---------- [Notifier] Add push channel to notifier | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | no | New feature? | yes | Deprecations? | no | Tickets | Fix #... | License | MIT | Doc PR | symfony/symfony-docs#... <!-- required for new features --> I am proposing to add a new push channel for sending web/mobile push notifications to users. This will open possibility to integrate providers like OneSignal, WonderPush, etc. And as requested added the first implementation. Commits ------- e8638ab244 [Notifier] Add push channel to notifier
2 parents c918c82 + df83241 commit 40c16ed

File tree

4 files changed

+20
-1
lines changed

4 files changed

+20
-1
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@
136136
use Symfony\Component\Notifier\Bridge\Mobyt\MobytTransportFactory;
137137
use Symfony\Component\Notifier\Bridge\Nexmo\NexmoTransportFactory;
138138
use Symfony\Component\Notifier\Bridge\Octopush\OctopushTransportFactory;
139+
use Symfony\Component\Notifier\Bridge\OneSignal\OneSignalTransportFactory;
139140
use Symfony\Component\Notifier\Bridge\OvhCloud\OvhCloudTransportFactory;
140141
use Symfony\Component\Notifier\Bridge\RocketChat\RocketChatTransportFactory;
141142
use Symfony\Component\Notifier\Bridge\Sendinblue\SendinblueTransportFactory as SendinblueNotifierTransportFactory;
@@ -2434,6 +2435,7 @@ private function registerNotifierConfiguration(array $config, ContainerBuilder $
24342435
$container->getDefinition('notifier.channel.email')->setArgument(0, null);
24352436
}
24362437
$container->getDefinition('notifier.channel.sms')->setArgument(0, null);
2438+
$container->getDefinition('notifier.channel.push')->setArgument(0, null);
24372439
}
24382440

24392441
$container->getDefinition('notifier.channel_policy')->setArgument(0, $config['channel_policy']);
@@ -2470,6 +2472,7 @@ private function registerNotifierConfiguration(array $config, ContainerBuilder $
24702472
MobytTransportFactory::class => 'notifier.transport_factory.mobyt',
24712473
NexmoTransportFactory::class => 'notifier.transport_factory.nexmo',
24722474
OctopushTransportFactory::class => 'notifier.transport_factory.octopush',
2475+
OneSignalTransportFactory::class => 'notifier.transport_factory.onesignal',
24732476
OvhCloudTransportFactory::class => 'notifier.transport_factory.ovhcloud',
24742477
RocketChatTransportFactory::class => 'notifier.transport_factory.rocketchat',
24752478
SendinblueNotifierTransportFactory::class => 'notifier.transport_factory.sendinblue',
@@ -2502,6 +2505,7 @@ private function registerNotifierConfiguration(array $config, ContainerBuilder $
25022505
case 'messagebird': $package = 'message-bird'; break;
25032506
case 'messagemedia': $package = 'message-media'; break;
25042507
case 'microsoftteams': $package = 'microsoft-teams'; break;
2508+
case 'onesignal': $package = 'one-signal'; break;
25052509
case 'ovhcloud': $package = 'ovh-cloud'; break;
25062510
case 'rocketchat': $package = 'rocket-chat'; break;
25072511
case 'smsbiuras': $package = 'sms-biuras'; break;

Resources/config/notifier.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@
1616
use Symfony\Component\Notifier\Channel\ChannelPolicy;
1717
use Symfony\Component\Notifier\Channel\ChatChannel;
1818
use Symfony\Component\Notifier\Channel\EmailChannel;
19+
use Symfony\Component\Notifier\Channel\PushChannel;
1920
use Symfony\Component\Notifier\Channel\SmsChannel;
2021
use Symfony\Component\Notifier\Chatter;
2122
use Symfony\Component\Notifier\ChatterInterface;
2223
use Symfony\Component\Notifier\EventListener\NotificationLoggerListener;
2324
use Symfony\Component\Notifier\EventListener\SendFailedMessageToNotifierListener;
2425
use Symfony\Component\Notifier\Message\ChatMessage;
26+
use Symfony\Component\Notifier\Message\PushMessage;
2527
use Symfony\Component\Notifier\Message\SmsMessage;
2628
use Symfony\Component\Notifier\Messenger\MessageHandler;
2729
use Symfony\Component\Notifier\Notifier;
@@ -57,6 +59,10 @@
5759
->args([service('mailer.transports'), service('messenger.default_bus')->ignoreOnInvalid()])
5860
->tag('notifier.channel', ['channel' => 'email'])
5961

62+
->set('notifier.channel.push', PushChannel::class)
63+
->args([service('texter.transports'), service('messenger.default_bus')->ignoreOnInvalid()])
64+
->tag('notifier.channel', ['channel' => 'push'])
65+
6066
->set('notifier.monolog_handler', NotifierHandler::class)
6167
->args([service('notifier')])
6268

@@ -103,6 +109,10 @@
103109
->args([service('texter.transports')])
104110
->tag('messenger.message_handler', ['handles' => SmsMessage::class])
105111

112+
->set('texter.messenger.push_handler', MessageHandler::class)
113+
->args([service('texter.transports')])
114+
->tag('messenger.message_handler', ['handles' => PushMessage::class])
115+
106116
->set('notifier.logger_notification_listener', NotificationLoggerListener::class)
107117
->tag('kernel.event_subscriber')
108118
;

Resources/config/notifier_transports.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
use Symfony\Component\Notifier\Bridge\Mobyt\MobytTransportFactory;
3737
use Symfony\Component\Notifier\Bridge\Nexmo\NexmoTransportFactory;
3838
use Symfony\Component\Notifier\Bridge\Octopush\OctopushTransportFactory;
39+
use Symfony\Component\Notifier\Bridge\OneSignal\OneSignalTransportFactory;
3940
use Symfony\Component\Notifier\Bridge\OvhCloud\OvhCloudTransportFactory;
4041
use Symfony\Component\Notifier\Bridge\RocketChat\RocketChatTransportFactory;
4142
use Symfony\Component\Notifier\Bridge\Sendinblue\SendinblueTransportFactory;
@@ -230,5 +231,9 @@
230231
->set('notifier.transport_factory.sms77', Sms77TransportFactory::class)
231232
->parent('notifier.transport_factory.abstract')
232233
->tag('texter.transport_factory')
234+
235+
->set('notifier.transport_factory.onesignal', OneSignalTransportFactory::class)
236+
->parent('notifier.transport_factory.abstract')
237+
->tag('texter.transport_factory')
233238
;
234239
};

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"symfony/mailer": "^5.2|^6.0",
5151
"symfony/messenger": "^5.4|^6.0",
5252
"symfony/mime": "^4.4|^5.0|^6.0",
53-
"symfony/notifier": "^5.3|^6.0",
53+
"symfony/notifier": "^5.4|^6.0",
5454
"symfony/process": "^4.4|^5.0|^6.0",
5555
"symfony/rate-limiter": "^5.2|^6.0",
5656
"symfony/security-bundle": "^5.4|^6.0",

0 commit comments

Comments
 (0)