资讯专栏INFORMATION COLUMN

[Laravel 5.3] Notification 个人理解,及 BearyChat Channe

Yang_River / 3401人阅读

摘要:提供了一种全新的发送通知的方式。个人理解是可以基于某事件操作触发一系列的通知任务,而通知方式由通知渠道接管,这样使得通知或推送逻辑更抽象,更易于管理和重构。在之前,我是利用的来完成这一系列通知。使用的配置文件还是原来的,无需重新配置。

Laravel Notification

Laravel 5.3 提供了一种全新的发送通知的方式:Notification 。个人理解是可以基于某事件(操作)触发一系列的通知任务,而通知方式由 Channel (通知渠道)接管,这样使得通知(或推送)逻辑更抽象,更易于管理和重构。

举个例子,在用户完成订单支付后,你需要给用户发送邮件、短信提醒用户的订单已完成支付,还需要提醒仓管有新订单需要发货,如果是重要的订单可能还需要通知 Boss 刚刚有用户支付了一笔大订单,如果你的应用提供客户端,你可能还需要给用户的 iOS/Android/Mac/Windows 等 App 发送推送通知,当然也包括浏览器的通知。你可能还需要把这个通知实时广播出去,让用户的网页无刷新实时更新状态等。除此之外,像订单操作这么重要的东西,你应该要记录日志。

在 5.3 之前,我是利用 Laravel 的 Model Event, Broadcast Event, Event Listener, Job, Queue 来完成这一系列通知。我之前在 laravel-bearychat 这个扩展包的文档中给了一个发送异步消息的示例。

现在 5.3 的一个 Notification 就可以囊括所有了,更重要的是代码分离。当用户完成订单支付后,只需要通过在 controller 或 model 中手动调用或者监听 Order model 的订单状态来自动调用 OrderPaidNotification 这个通知,剩下的事就都交给 OrderPaidNotification 了。

Notification 的具体使用请参阅官方文档:https://laravel.com/docs/mast...

第三方 Channels

Laravel 5.3 内置支持 Mail, Database, Broadcast, SMS, Slack 这几种 Channel 。

因为有很多第三方的通知(或推送)服务,官方专门搞了个组织来维护民间的 channels ,比如 Twitter, Facebook, Telegram, Evernote, IFTTT, Apple APNs 等。

Laravel Notification Channels 主页:http://laravel-notification-c...

GitHub 组织:https://github.com/laravel-no...

如果你在使用国内的某服务,可以考虑做成一个扩展包供大伙使用。​​​​

兼容 Laravel 5.2 / 5.1

使用 laravel-notification-channels/backport 这个扩展包,在 Laravel 5.2 / 5.1 上也可以使用 Laravel 5.3 的 Notification 。

项目主页:https://github.com/laravel-no...

BearyChat Channel

我周末做了一个 BearyChat 的通知渠道 BearyChatChannel,是在之前 Laravel-BearyChat 这个扩展包的基础上开发的,可以跟其兼容使用。

因为之前写的 Message 类和 Laravel 5.3 Notification 的 message 的设计理念高度相似,所以在新包中可以无缝迁移。其实我就是直接使用的旧的 Message 类,因为这样可以跟旧包兼容,而且这个 Message 除了发送通知还有响应 Outgoing 的功能。

正在使用 Laravel-BearyChat 的小伙伴在升级 Laravel 5.3 后可以使用 Notification+BearyChatChannel 这种新方式发送机器人消息,也可以使用原来的方式,互不影响。

BearyChatChannel 使用的配置文件还是原来的 config/bearychat.php,无需重新配置。

如果你注册了 BearyChatChannel 的 ServiceProvider ,原来的 ElfSundaeBearyChatLaravelServiceProvider 可有可无。

BearyChatChannel 项目主页及文档:https://github.com/laravel-no...

欢迎 Star 欢迎 Issue

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30389.html

相关文章

  • BearyChat 消息推送机器人 For PHP & Laravel

    摘要:后台经常需要给管理员老板运营推送一些事件消息,比如有用户购买了报错服务器流量预警有新的评论收到新的意见反馈今日超过等等。 后台经常需要给管理员/老板/运营推送一些事件消息,比如有用户购买了VIP、PHP 报错、服务器流量预警、App Store 有新的评论、收到新的意见反馈、今日 DAU 超过 10W+ 等等。我之前是做了一个简单的 iOS 应用来接收 Push 消息,需要推送消息时就...

    王岩威 评论0 收藏0
  • 制作一个BearyChatLaravel项目错误日志通知机器人

    摘要:修改在方法中添加如下代码就可以了日志机器人好了,在代码中故意写个错误,看看收到错误日志了。如果觉得本篇文章对您十分有益,何不打赏一下 本文最早发表于本人博客: 制作一个BearyChat的Laravel项目错误日志通知机器人 Laravel 集成 Monolog 来做日志处理,Monolog非常强大,也容易扩展,其实它本身已经支持很多Handler了,你可以把日志发送到邮件或者其他日志...

    gaosboy 评论0 收藏0
  • Laravel 5.8 前瞻

    摘要:发布于年月,从那时起大约每六个月会发布一次的新版本。将会支持相对较新的来管理项目中的环境文件。弃用和辅助函数所有的和全局辅助函数都已弃用,将在中删除。将返回更干净的相同值。和通知和通知已从主项目中删除,并提取到第三方软件包中。 showImg(https://segmentfault.com/img/remote/1460000018269419?w=585&h=400); 无论是从零...

    tianhang 评论0 收藏0
  • Laravel学习笔记之Two-Factor Authentication神器——Duo

    摘要:在登录后台时也是必须认证才行。使用这种总比粗暴的限制访问来保护安全要高效的多,一切都是为了自动化,为了提高生产率。总结本文主要学习使用这个神器来做,并学习了如何使用集成进程序中。我司最近需要一名伙伴一起共同航海去,有兴趣速来。 说明:本文主要研究利用Duo来实现双重认证,Two-Factor Authentication就是除了username-password这种登录认证之外,还使用...

    hoohack 评论0 收藏0
  • PHP相关

    摘要:的机器学习库的机器学习库,包括算法交叉验证神经网络等内容。在即将到来的大会上,她将和大家分享在机器学习领域的全新可能。入门总结入门相关,如安装配置基本使用等。 基于 Swoole 开发 PHP 扩展 Swoole-1.9.7 增加了一个新特性,可以基于 Swoole 使用 C++ 语言开发扩展模块,在扩展模块中可以注册 PHP 内置函数和类。现在可以基于 Swoole 来编写 PHP ...

    lewinlee 评论0 收藏0

发表评论

0条评论

Yang_River

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<