摘要:提供了一種全新的發(fā)送通知的方式。個(gè)人理解是可以基于某事件操作觸發(fā)一系列的通知任務(wù),而通知方式由通知渠道接管,這樣使得通知或推送邏輯更抽象,更易于管理和重構(gòu)。在之前,我是利用的來完成這一系列通知。使用的配置文件還是原來的,無需重新配置。
Laravel Notification
Laravel 5.3 提供了一種全新的發(fā)送通知的方式:Notification 。個(gè)人理解是可以基于某事件(操作)觸發(fā)一系列的通知任務(wù),而通知方式由 Channel (通知渠道)接管,這樣使得通知(或推送)邏輯更抽象,更易于管理和重構(gòu)。
舉個(gè)例子,在用戶完成訂單支付后,你需要給用戶發(fā)送郵件、短信提醒用戶的訂單已完成支付,還需要提醒倉管有新訂單需要發(fā)貨,如果是重要的訂單可能還需要通知 Boss 剛剛有用戶支付了一筆大訂單,如果你的應(yīng)用提供客戶端,你可能還需要給用戶的 iOS/Android/Mac/Windows 等 App 發(fā)送推送通知,當(dāng)然也包括瀏覽器的通知。你可能還需要把這個(gè)通知實(shí)時(shí)廣播出去,讓用戶的網(wǎng)頁無刷新實(shí)時(shí)更新狀態(tài)等。除此之外,像訂單操作這么重要的東西,你應(yīng)該要記錄日志。
在 5.3 之前,我是利用 Laravel 的 Model Event, Broadcast Event, Event Listener, Job, Queue 來完成這一系列通知。我之前在 laravel-bearychat 這個(gè)擴(kuò)展包的文檔中給了一個(gè)發(fā)送異步消息的示例。
現(xiàn)在 5.3 的一個(gè) Notification 就可以囊括所有了,更重要的是代碼分離。當(dāng)用戶完成訂單支付后,只需要通過在 controller 或 model 中手動(dòng)調(diào)用或者監(jiān)聽 Order model 的訂單狀態(tài)來自動(dòng)調(diào)用 OrderPaidNotification 這個(gè)通知,剩下的事就都交給 OrderPaidNotification 了。
Notification 的具體使用請(qǐng)參閱官方文檔:https://laravel.com/docs/mast...
第三方 ChannelsLaravel 5.3 內(nèi)置支持 Mail, Database, Broadcast, SMS, Slack 這幾種 Channel 。
因?yàn)橛泻芏嗟谌降耐ㄖɑ蛲扑停┓?wù),官方專門搞了個(gè)組織來維護(hù)民間的 channels ,比如 Twitter, Facebook, Telegram, Evernote, IFTTT, Apple APNs 等。
Laravel Notification Channels 主頁:http://laravel-notification-c...
GitHub 組織:https://github.com/laravel-no...
如果你在使用國(guó)內(nèi)的某服務(wù),可以考慮做成一個(gè)擴(kuò)展包供大伙使用。????
兼容 Laravel 5.2 / 5.1使用 laravel-notification-channels/backport 這個(gè)擴(kuò)展包,在 Laravel 5.2 / 5.1 上也可以使用 Laravel 5.3 的 Notification 。
項(xiàng)目主頁:https://github.com/laravel-no...
BearyChat Channel我周末做了一個(gè) BearyChat 的通知渠道 BearyChatChannel,是在之前 Laravel-BearyChat 這個(gè)擴(kuò)展包的基礎(chǔ)上開發(fā)的,可以跟其兼容使用。
因?yàn)橹皩懙?Message 類和 Laravel 5.3 Notification 的 message 的設(shè)計(jì)理念高度相似,所以在新包中可以無縫遷移。其實(shí)我就是直接使用的舊的 Message 類,因?yàn)檫@樣可以跟舊包兼容,而且這個(gè) Message 除了發(fā)送通知還有響應(yīng) Outgoing 的功能。
正在使用 Laravel-BearyChat 的小伙伴在升級(jí) Laravel 5.3 后可以使用 Notification+BearyChatChannel 這種新方式發(fā)送機(jī)器人消息,也可以使用原來的方式,互不影響。
BearyChatChannel 使用的配置文件還是原來的 config/bearychat.php,無需重新配置。
如果你注冊(cè)了 BearyChatChannel 的 ServiceProvider ,原來的 ElfSundaeBearyChatLaravelServiceProvider 可有可無。
BearyChatChannel 項(xiàng)目主頁及文檔:https://github.com/laravel-no...
?歡迎 Star 歡迎 Issue
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/30389.html
摘要:后臺(tái)經(jīng)常需要給管理員老板運(yùn)營(yíng)推送一些事件消息,比如有用戶購買了報(bào)錯(cuò)服務(wù)器流量預(yù)警有新的評(píng)論收到新的意見反饋今日超過等等。 后臺(tái)經(jīng)常需要給管理員/老板/運(yùn)營(yíng)推送一些事件消息,比如有用戶購買了VIP、PHP 報(bào)錯(cuò)、服務(wù)器流量預(yù)警、App Store 有新的評(píng)論、收到新的意見反饋、今日 DAU 超過 10W+ 等等。我之前是做了一個(gè)簡(jiǎn)單的 iOS 應(yīng)用來接收 Push 消息,需要推送消息時(shí)就...
摘要:修改在方法中添加如下代碼就可以了日志機(jī)器人好了,在代碼中故意寫個(gè)錯(cuò)誤,看看收到錯(cuò)誤日志了。如果覺得本篇文章對(duì)您十分有益,何不打賞一下 本文最早發(fā)表于本人博客: 制作一個(gè)BearyChat的Laravel項(xiàng)目錯(cuò)誤日志通知機(jī)器人 Laravel 集成?Monolog?來做日志處理,Monolog非常強(qiáng)大,也容易擴(kuò)展,其實(shí)它本身已經(jīng)支持很多Handler了,你可以把日志發(fā)送到郵件或者其他日志...
摘要:發(fā)布于年月,從那時(shí)起大約每六個(gè)月會(huì)發(fā)布一次的新版本。將會(huì)支持相對(duì)較新的來管理項(xiàng)目中的環(huán)境文件。棄用和輔助函數(shù)所有的和全局輔助函數(shù)都已棄用,將在中刪除。將返回更干凈的相同值。和通知和通知已從主項(xiàng)目中刪除,并提取到第三方軟件包中。 showImg(https://segmentfault.com/img/remote/1460000018269419?w=585&h=400); 無論是從零...
摘要:在登錄后臺(tái)時(shí)也是必須認(rèn)證才行。使用這種總比粗暴的限制訪問來保護(hù)安全要高效的多,一切都是為了自動(dòng)化,為了提高生產(chǎn)率。總結(jié)本文主要學(xué)習(xí)使用這個(gè)神器來做,并學(xué)習(xí)了如何使用集成進(jìn)程序中。我司最近需要一名伙伴一起共同航海去,有興趣速來。 說明:本文主要研究利用Duo來實(shí)現(xiàn)雙重認(rèn)證,Two-Factor Authentication就是除了username-password這種登錄認(rèn)證之外,還使用...
摘要:的機(jī)器學(xué)習(xí)庫的機(jī)器學(xué)習(xí)庫,包括算法交叉驗(yàn)證神經(jīng)網(wǎng)絡(luò)等內(nèi)容。在即將到來的大會(huì)上,她將和大家分享在機(jī)器學(xué)習(xí)領(lǐng)域的全新可能。入門總結(jié)入門相關(guān),如安裝配置基本使用等。 基于 Swoole 開發(fā) PHP 擴(kuò)展 Swoole-1.9.7 增加了一個(gè)新特性,可以基于 Swoole 使用 C++ 語言開發(fā)擴(kuò)展模塊,在擴(kuò)展模塊中可以注冊(cè) PHP 內(nèi)置函數(shù)和類。現(xiàn)在可以基于 Swoole 來編寫 PHP ...
閱讀 3987·2021-09-22 16:03
閱讀 5338·2021-09-22 15:40
閱讀 1196·2021-09-06 15:02
閱讀 875·2019-08-30 15:53
閱讀 2228·2019-08-29 15:35
閱讀 1113·2019-08-23 18:22
閱讀 3343·2019-08-23 16:06
閱讀 650·2019-08-23 12:27