创建和发送通知

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 5.0,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

创建和发送通知

5.0

通知组件是在Symfony 5.0中引入的一个ob娱乐下载实验功能

安装

当前的web应用程序使用许多不同的渠道向用户发送消息(例如短信,松弛消息、邮件推送通知,等等)。Symfony的通知组件是一个抽象的所有这些渠道。ob娱乐下载它提供了一个动态的方式来管理消息被发送。得到通知安装使用:

1
美元作曲家需要symfony /通知ob娱乐下载

通道:聊天、发短信、电子邮件和浏览器

不同的渠道通知组件可以发送通知。每个通道可以集成不同的提供者(例如松弛或为什么Twilio SMS)通过使用传输。

通知组件支持以下渠道:

提示

使用秘密securily存储API的令牌。

短信通道

短信通道使用每人类发送短信到手机。该功能需要订阅一个第三方服务,发送短信。ob娱乐下载Symfony提供了集成几个流行的短信服务:

服务 DSN
为什么Twilio ob娱乐下载symfony / twilio-notifier 为什么twilio: / /席德:TOKEN@default ?从=
Nexmo ob娱乐下载symfony / nexmo-notifier nexmo: / /关键:SECRET@default ?从=

使一个人,在你添加正确的DSN.env文件和配置texter_transports:

1 2
# .envTWILIO_DSN =为什么twilio: / /席德:TOKEN@default ?从=
  • YAML
  • XML
  • PHP
1 2 3 4 5
#配置/包/ notifier.yaml框架:通知:texter_transports:为什么twilio:' % env (TWILIO_DSN) %

聊天频道

聊天频道用于发送聊天消息给用户使用喋喋不休类。ob娱乐下载Symfony提供了集成这些聊天服务:

服务 DSN
松弛 ob娱乐下载symfony / slack-notifier 松:/ / TOKEN@default ?通道=通道
电报 ob娱乐下载symfony / telegram-notifier 电报:/ / TOKEN@default ? = CHAT_ID频道

聊天配置使用chatter_transports设置:

1 2
# .envSLACK_DSN =松弛:/ / TOKEN@default ?通道=通道
  • YAML
  • XML
  • PHP
1 2 3 4 5
#配置/包/ notifier.yaml框架:通知:chatter_transports:松:' % env (SLACK_DSN) %

电子邮件渠道

电子邮件使用频道ob娱乐下载Symfony梅勒使用特殊的发送通知NotificationEmail。应安装树枝桥连同墨色和CSS内联树枝扩展:

1
美元作曲家需要symfony / twob娱乐下载ig-pack树枝/ cssinliner-extra树枝/ inky-extra

在这之后,配置梅勒。您还可以设置默认”从“应该使用电子邮件地址,发送电子邮件通知:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6
#配置/包/ mailer.yaml框架:梅勒:dsn:' % env (MAILER_DSN) %信封:发送方:“notifications@example.com”

配置使用故障转移或循环传输

除了配置一个或多个单独的传输,还可以使用特殊| |& &字符来实现故障转移或循环运输:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10
#配置/包/ notifier.yaml框架:通知:chatter_transports:#松弛和使用电报发送通知#松弛错误主要:' % env (SLACK_DSN) % | | % env (TELEGRAM_DSN) % '#发送通知到下一个预定的运输由循环计算设置轮流捡取:' % env (SLACK_DSN) % & & % env (TELEGRAM_DSN) % '

创建和发送通知

发送一个通知,自动装配NotifierInterface(服务标识通知人)。这个类有send ()方法允许您发送一个通知到一个收件人:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33
/ / src /控制器/ InvoiceController.php名称空间应用程序\控制器;使用ob娱乐下载\组件\通知人\通知\通知;使用ob娱乐下载\组件\通知人\NotifierInterface;使用ob娱乐下载\组件\通知人\收件人\AdminRecipient;InvoiceController扩展AbstractController{/ * * *@Route(“/发票/创建”)* /公共函数创建(NotifierInterface美元通知人){/ /……/ /创建一个发送通知/ /使用“邮件”频道美元通知= (通知(“新发票”,(“电子邮件”)))- >内容(“你有一个新的发票15欧元。”);/ /接收方的通知美元收件人=AdminRecipient (美元用户- >getEmail (),美元用户- >getPhonenumber ());/ /发送通知收件人美元通知人- >发送(美元通知,美元收件人);/ /……}}

通知通过使用两个参数:创建主题和渠道。通道指定哪个频道(或运输)应该用于发送通知。例如,(“电子邮件”、“短信”)将发送电子邮件和短信通知给用户。应指定运输使用聊天时(如。['邮件','聊天/电报'])。

也有一个默认的通知内容()emoji ()方法设置通知内容和图标。

ob娱乐下载Symfony提供了三种类型的人:

NoRecipient
这是默认的,没有必要时是有用的信息接收器。例如,浏览器使用当前请求的频道会话flashbag;
收件人
这只包含用户的电子邮件地址,可以用于电子邮件和浏览器上的消息通道;
AdminRecipient
这可以包含电子邮件地址和phonenumber的用户。这个收件人可以用于所有渠道(取决于他们是否实际上是集)。

配置渠道政策

而不是指定目标创建频道,Symfony还允许您使用通知重要性水平。ob娱乐下载更新的配置来指定应该使用哪些渠道(使用特定的水平channel_policy):

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#配置/包/ notifier.yaml框架:通知:#……channel_policy:#使用短信,松弛和电子邮件紧急通知紧急:(“短信”,“聊天/松弛”,“电子邮件”]#使用松弛非常重要的通知高:(“聊天/松弛”)#使用浏览器中、低通知介质:(“浏览器”)低:(“浏览器”)

现在,每当通知的重要性设置为“高”,它将使用松弛运输:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/ /……InvoiceController扩展AbstractController{/ * * *@Route(“/发票/创建”)* /公共函数发票(NotifierInterface美元通知人){/ /……美元通知= (通知(“新发票”))- >内容(“你有一个新的发票15欧元。”)- >重要性(通知::IMPORTANCE_HIGH);美元通知人- >发送(美元通知,收件人(“wouter@example.com”));/ /……}}

自定义通知

您可以扩展通知收件人基类来定制他们的行为。例如,您可以覆盖getChannels ()方法只返回短信如果发票价格是非常高的,收件人电话号码:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27
名称空间应用程序\通知人;使用ob娱乐下载\组件\通知人\通知\通知;使用ob娱乐下载\组件\通知人\收件人\收件人;InvoiceNotification扩展通知{私人美元价格;公共