创建和发送通知

渠道:聊天,短信,电子邮件和浏览器
  • SMS频道通过SMS消息向手机发送通知;
  • 聊天频道向Slack和Telegram等聊天服务发送通知;
  • 电子邮件渠道整合欧宝娱乐app下载地址Symfony梅勒;
  • 浏览器通道使用闪存消息
  • 提示

    使用秘密安全存储API的令牌。

    短信通道欧宝娱乐app下载地址Symfony \ \通知\每人组件课程将SMS消息发送到移动电话。此功能需要订阅发送SMS消息的第三方服务。欧宝娱乐app下载地址Symfony提供与几个流行的SMS服务的集成:

    服务 包裹 DSN
    Esendex. 欧宝娱乐app下载地址symfony / esendex-notifier esendex: / / USER_NAME: PASSWORD@default ?accountreference = ACCOUNT_REFERENCE&from =
    FreeMobile 欧宝娱乐app下载地址Symfony /免费移动通知 freemobile: / /登录:PASSWORD@default ?电话=电话
    Infobip 欧宝娱乐app下载地址symfony / infobip-notifier infobip: / / AUTH_TOKEN@HOST ?从=
    Mobyt 欧宝娱乐app下载地址symfony / mobyt-notier mobyt: / / USER_KEY: ACCESS_TOKEN@default ?从=
    Nexmo 欧宝娱乐app下载地址symfony / nexmo-notifier nexmo: / /关键:SECRET@default ?从=
    Ovh欧宝体育应用最新版app下载Cloud 欧宝娱乐app下载地址s欧宝体育应用最新版app下载ymfony / ovh-cloud-notifier ovh欧宝体育应用最新版app下载cloud: / / APPLICATION_KEY: APPLICATION_SECRET@default ?consumer_key = CONSUMER_KEY&service_name = SERVICE_NAME
    Sendinblue 欧宝娱乐app下载地址symfony / sendInblue-notier SendInBlue:// api_key @ default?sender =手机
    辛克 欧宝娱乐app下载地址symfony / sinch-notifier 双曲正弦:/ / ACCOUNT_ID: AUTH_TOKEN@default ?从=
    Smsapi 欧宝娱乐app下载地址symfony / smsapi-notier Smsapi://令牌@默认值?来自=来自
    为什么Twilio 欧宝娱乐app下载地址symfony / twilio-notifier 为什么twilio: / / SID: TOKEN@default ?从=

    5.1版中的新增功能:Symfony欧宝体育应用最新版app下载 5.1中引入了OvhCloud、Sinch和FreeMobile的集成。欧宝娱乐app下载地址

    5.2新版功能:Symfony 5.2引入了SMSAPI,Infobip,Mobyt,Esendex和SendInblue集成。欧宝娱乐app下载地址

    要启用发号机,请在您的中添加正确的DSN.env文件并配置texter_transports:

    1 2
    # .envTWILIO_DSN=为什么twilio: / /席德:[电子邮件受保护]?从=
    • YAML
      1 2 3 4 5
      #配置/包/ notifier.yaml框架:通知程序:texter_transports:为什么twilio:' % env (TWILIO_DSN) %
    • XML.
      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 17 18
      < !——配置/包/ notifier.xml >< ?encoding="UTF-8"<容器xmlns =“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi =“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”XSI:Schemalocation =“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/serviceshttps://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services/services-1.0.xsdhttp://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony.https://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd“><框架:配置><框架:通知><框架:texter-transportname =“为什么twilio”>%env(twilio_dsn)%< /框架:通知>< /框架:配置>
    • PHP
      1 2 3 4 5 6 7 8
      #配置/包/ notifier.php美元的容器->loadFromExtension(“框架”,(“通知”=>(“texter_transports”=>(“为什么twilio”=>' % env (TWILIO_DSN) %,],],]);

    聊天频道欧宝娱乐app下载地址Symfony组件\ \通知\喋喋不休类。欧宝娱乐app下载地址Symfony集成了以下聊天服务:

    服务 包裹 DSN
    不和谐 欧宝娱乐app下载地址symfony / disd-notier 不和:/ / TOKEN@default ?webhook_id = ID
    重火力点 欧宝娱乐app下载地址symfony / firebase-notifier 重火力点:/ /用户名:PASSWORD@default
    GoogleChat 欧宝娱乐app下载地址symfony / google-chat-notifier googlechat: / / ACCESS_KEY: ACCESS_TOKEN@default /空间?threadKey = THREAD_KEY
    LinkedIn 欧宝娱乐app下载地址symfony / linked-in-notifier LinkedIn://令牌:user_id @默认值
    Mattermost 欧宝娱乐app下载地址symfony / mattermost-notifier mattermost: / / ACCESS_TOKEN@HOST /路径?通道=通道
    RocketChat 欧宝娱乐app下载地址Symfony / Rocket-Chat-Notifier rocketchat: / / TOKEN@ENDPOINT ?通道=通道
    松弛 欧宝娱乐app下载地址symfony / slack-notier 松:/ / TOKEN@default ?通道=通道
    电报 欧宝娱乐app下载地址symfony / telegram-notifier 电报:/ / TOKEN@default ?频道= CHAT_ID
    Zulip 欧宝娱乐app下载地址symfony / zulip-notifier zulip: / /电子邮件:TOKEN@HOST ?通道=通道

    5.1版中的新增功能:Symfony 5.1中引入了Firebase、Mattermost和RocketChat的集成。欧宝娱乐app下载地址Slack DSN在Symfony 5.1中更改为欧宝娱乐app下载地址使用Slack传入webhook而不是遗留令牌。

    5.2新版功能:在Symfony 5.2中引入了GoogleChat,Linkedin,Zulip和Discord集成。欧宝娱乐app下载地址Symfony 5.2的Slack DSN更改为使欧宝娱乐app下载地址用Slack Web API,与5.0中一样。

    使用聊天使用chatter_transports设置:

    1 2
    # .envSLACK_DSN=松:/ /[电子邮件受保护]?渠道=通道
    • YAML
      1 2 3 4 5
      #配置/包/ notifier.yaml框架:通知程序:chatter_transports:松弛:'%env(slack_dsn)%'
    • XML.
      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 17 18
      < !——配置/包/ notifier.xml >< ?encoding="UTF-8"<容器xmlns =“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi =“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”XSI:Schemalocation =“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/serviceshttps://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services/services-1.0.xsdhttp://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony.https://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd“><框架:配置><框架:通知><框架:chatter-transportname =“松弛”>%env(slack_dsn)%< /框架:chatter-transport >< /框架:通知>< /框架:配置>
    • PHP
      1 2 3 4 5 6 7 8
      #配置/包/ notifier.php美元的容器->loadFromExtension(“框架”,(“通知”=>(“chatter_transports”=>(“松弛”=>'%env(slack_dsn)%',],],]);

    电子邮件渠道欧宝娱乐app下载地址Symfony梅勒使用特殊发送通知欧宝娱乐app下载地址symfony \ bridge \ twig \ mime \ notificationemail。需要安装枝桥和CSS inliner曲线扩展:

    1
    美元作曲家需要symfony/twig欧宝娱乐app下载地址-pack twig/cssinliner-extra twig/ink -extra

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

    • YAML
      1 2 3 4 5 6
      #配置/包/ mailer.yaml框架:邮箱:dsn:' % env (MAILER_DSN) %信封:发送方:[电子邮件受保护]
    • XML.
      12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
      < !——配置/包/ mailer.xml >< ?encoding="UTF-8"<容器xmlns =“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi =“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”XSI:Schemalocation =“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/serviceshttps://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services/services-1.0.xsdhttp://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony.https://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd“><框架:配置><框架:邮件dsn =“%env(mailer_dsn)%”><框架:信封发送方=[电子邮件受保护]/>< /框架:梅勒>< /框架:配置>
    • PHP
      1 2 3 4 5 6 7 8 9
      #配置/包/ mailer.php美元的容器->loadFromExtension(“框架”,(“梅勒”=>(“dsn”=>' % env (MAILER_DSN) %,'信封'=>('发件人'=>[电子邮件受保护],],],]);

    配置以使用故障转移或舍诺 - 罗宾传输||& &用于实现故障转移或轮循传输的字符:

    • YAML
      1 2 3 4 5 6 7 8 9 10
      #配置/包/ notifier.yaml框架:通知程序:chatter_transports:#发送通知到Slack,并使用Telegram#松弛错误主要:% env (SLACK_DSN) %||% env (TELEGRAM_DSN) % '#发送通知以循环计算的下一个计划运输设置轮流捡取:% env (SLACK_DSN) %& &% env (TELEGRAM_DSN) % '
    • XML.
      12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
      < !——配置/包/ notifier.xml >< ?encoding="UTF-8"<容器xmlns =“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi =“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”XSI:Schemalocation =“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/serviceshttps://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services/services-1.0.xsdhttp://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony.https://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd“><框架:配置><框架:通知>< !-- -发送通知到Slack,并使用Telegram松弛的错误- - - ><框架:chatter-transportname =“松弛”>% env (SLACK_DSN) % | | % env (TELEGRAM_DSN) %< /框架:chatter-transport >< !——向下一个预定的传输发送通知循环计算 - ><框架:chatter-transportname =“松弛”>< !(CDATA[% env (SLACK_DSN) % & & % env (TELEGRAM_DSN) %]] >< /框架:chatter-transport >< /框架:通知>< /框架:配置>
    • PHP
      1 2 3 4 5 6 7 8 9 10 11 12 13
      #配置/包/ notifier.php美元的容器->loadFromExtension(“框架”,(“通知”=>(“chatter_transports”=>(//向Slack发送通知,并使用Telegram/ /松弛错误“主要”=>' % env (SLACK_DSN) % | | % env (TELEGRAM_DSN) % ',//发送通知到下一个按轮循计算的计划传输'圆润'=>'%env(slack_dsn)%&&%env(telegram_dsn)%',],],]);

    创建和发送通知欧宝娱乐app下载地址Symfony \ \通知\ NotifierInterface组件(服务标识通知程序)。这个类有send ()方法,允许发送欧宝娱乐app下载地址symfony \ component \ notifier \ notification \ notification到A.欧宝娱乐app下载地址Symfony \组件\通知\收件人、收件人:

    // src / controller / invoiceController.php命名空间App \ Controller.;使用欧宝娱乐app下载地址symfony \ component \ notifier \ notification \ notification;使用欧宝娱乐app下载地址Symfony \ \通知\ NotifierInterface组件;使用欧宝娱乐app下载地址Symfony \组件\通知\收件人、收件人;InvoiceController扩展AbstractController{/ * ** @Route(“/发票/创建”)* /上市函数创造(Notier接口美元的通知){// ......//创建一个必须被发送的通知//使用“email”通道$通知=(通知('新发票',('电子邮件')))->内容(“你有15欧元的新发票。);//通知的接收者接受美元=收件人($用户->getEmail(),$用户->getPhonenumber());//将通知发送给收件人美元的通知->发送($通知,接受美元);// ......}}

    通知是通过使用两个参数创建的:主题和频道。通道指定应使用哪个频道(或传输)发送通知。例如,(“电子邮件”,“短信”)将发送电子邮件和短信通知给用户。

    默认通知还具有内容()emoji ()方法设置通知内容和图标。

    欧宝娱乐app下载地址Symfony提供以下收件人:

    欧宝娱乐app下载地址symfony \ component \ notifier \收件人\ norecipe
    这是默认值,当不需要获取关于接收方的信息时非常有用。例如,浏览器通道使用当前请求的会话flashbag.;
    欧宝娱乐app下载地址Symfony \组件\通知\收件人、收件人
    它可以包含用户的电子邮件地址和电话号码。这个接收方可以用于所有通道(取决于它们是否被实际设置)。

    5.2新版功能:adminRecipient.类在Symfony 5.2中被删除,你应该欧宝娱乐app下载地址使用收件人代替。

    配置渠道政策channel_policy):

    • YAML
      12 3 4 5 6 7 8 9 10 11 12 13 14
      #配置/包/ notifier.yaml框架:通知程序:#……channel_policy:紧急通知时使用短信、Slack和电子邮件紧急的:(“短信”,“聊天/松弛”,'电子邮件']对于高度重要的通知使用Slack:(“聊天/松弛”]#使用浏览器接收中等和低级别通知媒介:(“浏览器”]低的:(“浏览器”]
    • XML.
      12 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
      < !——配置/包/ notifier.xml >< ?encoding="UTF-8"<容器xmlns =“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi =“http://www.w3.org/2001/XMLSchema-instance”xmlns:框架=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony”XSI:Schemalocation =“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/serviceshttps://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services/services-1.0.xsdhttp://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony.https://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/symfony/symfony-1.0.xsd“><框架:配置><框架:通知>< !——……--><框架:channel-policy >< !紧急通知时使用短信、Slack和电子邮件<框架:紧急>短信< /框架:紧急><框架:紧急>聊天/松弛< /框架:紧急><框架:紧急>电子邮件< /框架:紧急>< !——对高度重要的通知使用Slack——>高> <框架:聊天/松弛> < /框架:高< !—使用浏览器接收中等和低级别通知——><框架:媒介>浏览器< /框架:中等>> <框架:低浏览器> < /框架:低< /框架:channel-policy >< /框架:通知>< /框架:配置>
    • PHP
      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
      #配置/包/ notifier.php美元的容器->loadFromExtension(“框架”,(“通知”=>(// ......“channel_policy”=>(//使用SMS,Slack和Email进行紧急通知“紧急”=>(“短信”,“聊天/松弛”,'电子邮件'],//对高度重要的通知使用Slack“高”=>(“聊天/松弛”],//使用浏览器接收中等和低通知“媒介”=>(“浏览器”],“低”=>(“浏览器”],],],]);

    现在,无论何时通知的重要性被设置为“高”,它都会通过Slack传输方式发送:

    自定义通知通知收件人基类自定义其行为。例如,您可以覆盖getchannels()方法只返回短信如果发票价格非常高,收件人有电话号码:

    命名空间App \通知;使用欧宝娱乐app下载地址symfony \ component \ notifier \ notification \ notification;使用欧宝娱乐app下载地址Symfony \组件\通知\ \ RecipientInterface;使用欧宝娱乐app下载地址Symfony \组件\通知\ \ SmsRecipientInterface;邀请症扩展通知{私人美元的价格;上市函数__construct(美元的价格){$这一点->价格=美元的价格;}上市函数getChannels(RecipientInterface接受美元){如果($这一点->价格>10000& &接受美元运算符smsrecipientInterface.){返回(“短信”];}返回('电子邮件'];}}

    这项工作包括代码样本,是在a下获得的许可创作共用BY-SA 3.0许可证。