摘要:先說一下在什么場景會使用這個事件功能。的事件功能實際上更傾向是一種管理手段,并不是沒了它我們就做不到了,只是它能讓我們做得更加好,更加優雅。然后去目錄創建各種要做的事件監聽類。
先說一下在什么場景會使用這個事件功能。
事情大概是這樣的,需求要在用戶注冊的時候發一些幫助郵件給用戶(原本用戶在注冊之后已經有發別的郵件的了,短信,IM什么的)
原來這個注冊的方法也就10多行代碼。但是有時候我們為了省事,直接在注冊代碼后面添加了各種代碼。
例如這個注冊方法本來是這樣的
現在有一個需求,要求注冊之后給用戶的郵箱發一個廣告,絕大多數的人(也包括以前的我)就直接在這后面接著寫代碼了
這是比較直觀的寫法,后來又有需求要發個短信。
然后又有需求,要發IM消息,這樣的需求很多。這些方法如果你封裝了,可能也就一行代碼。
但是,在實際項目中,這個注冊方法里面已經加了很多東西。如果多人開發的話各種不方便。然后想到了laravel似乎有這個功能,但是一直都不知道怎么應用,仔細看了一下手冊,發現和自己的想法不謀而合。
laravel的事件功能實際上更傾向是一種管理手段,并不是沒了它我們就做不到了,只是它能讓我們做得更加好,更加優雅。
laravel的事件是一種管理+實現的體現,它首先有一個總的目錄,然后我們可以宏觀的看到所有的事件,而不需要每次都要打開控制器的方法我們才能知道注冊后會發生什么,這一點很重要,非常的方便,我就不按著laravel的順序來講,而是按著實際情況來建立這種關系。
現在我們無非就是要在注冊之后要做一系列的事情,首先得注冊完之后調用一個事件,然后這個事件再做各種各樣的事
找到appProvidersEventServiceProvider.php文件。給它添加關系,告訴系統,有人用event()調用了事件之后要被誰監聽得到。
[ // 發送廣告郵件 "AppListenersSendAdMail", // 發送短信 "AppListenersSendSms", // 發送幫助信息 "AppListenersSendHelpInformation", ], ]; }這里是注冊事件的入口,相當于一個總目錄,這樣就可以跟注冊代碼解耦了,以后要加東西我們就不需要再去看注冊方法的代碼了
現在注冊完之后會觸發這個AppEventsRegister類,然后這個類會被AppListenersSendAdMail,AppListenersSendSms,AppListenersSendHelpInformation監聽得到,我們進入appEvents目錄,創建Register這個類
uid = $uid; } }這樣就可以了。
然后去appListeners目錄創建各種要做的事件監聽類。
uid; $user = User::find($uid); //......各種實現 } }這個handle方法就是我們要做的具體實現了,有個很方便的功能就是如果implements ShouldQueue這個接口的話就會異步隊列執行,如果去掉的話就是同步執行。很方便有沒有,這樣代碼就解耦了,不需要再管注冊代碼了,在這里就能很方便的管理了。多人開發也是多帶帶寫自己的Listeners就可以了。
具體的建議大家去看看手冊吧,有些內容我這里就不完全說了。我只是拋磚引玉
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/25669.html
摘要:在大多數的開發中,角色和權限的管理都是非常重要的一部分。上關于角色和權限管理的包有很多,今天就為大家介紹幾個好用的包。緩存在中,為了提高應用的性能,或自動的存儲角色和權限數據。 showImg(https://segmentfault.com/img/bVTEb3?w=2200&h=1125); 在大多數的web開發中,角色和權限的管理都是非常重要的一部分。Laravel上關于角色和權...
摘要:通過添加此功能,該程序包將啟用記錄請求和響應信息所需的功能。是一條普通控制器路由,用于輸出控制臺的視圖。收集瀏覽器行為這是整個擴展包最乏味的部分。 Laravel Dusk 控制臺是一款 Laravel 擴展包,能夠為你的 Dusk 測試套件提供漂亮的可視面板。通過它,你可以可視化運行 Dusk 測試時涉及的各個步驟,以及查看每個步驟的 DOM 快照。這對于調試瀏覽器測試、并搞清楚后臺...
摘要:更多擴展包中有豐富的擴展包來幫你完成幾乎任何你想實現的功能。我們不能把所有的擴展包都整理出來,然而,這里還是列出了一些很有用的。總之,你幾乎總是能夠找到一個擴展包可以解決你當前的問題。 Laravel 是一個非常流行且簡單易用的PHP框架,它提供了很多基礎的工具(如 RESTful 路由、內置的ORM、模版等)使你能夠快速的創建應用。這意味著你可以花費更少的時間來建立應用程序的模版,給...
摘要:設計判斷是否有某個權限是一個二維數組全局設置在數據庫中,我將二維數組存儲為,利用的的和方法,完成了數據庫中和外界程序邏輯的連接。 關于權限管理的思考最近用laravel設計后臺,后臺需要有個權限管理。權限管理實質上分為兩個部分,首先是認證,然后是權限。認證部分非常好做,就是管理員登錄,記錄session。這個laravel中也有自帶Auth來實現這個。最麻煩就是權限認證。 權限認證本質...
摘要:事件類負責序列化傳入數據,并將其傳遞給偵聽器,旨在在事件觸發后處理邏輯的內容。當綁定準備就緒時,我們可以使用生成一對事件偵聽器,或者我們可以使用命令單獨創建它們。我們的事件沒有其他責任,只是將用戶指定為公共財產,可能會傳遞給偵聽器。 在許多情況下,當我們的應用程序變得更大,并且需要處理越來越多的任務時,我們的控制器,演示者或服務的大小可以快速增加,并且很容易變得難以處理,無法測試和緩慢...
閱讀 773·2019-08-29 16:32
閱讀 841·2019-08-29 12:31
閱讀 3221·2019-08-26 18:26
閱讀 3161·2019-08-26 12:20
閱讀 1738·2019-08-26 12:00
閱讀 3011·2019-08-26 10:58
閱讀 2818·2019-08-23 17:08
閱讀 2315·2019-08-23 16:32