本篇文章為大家帶來了關於laravel的相關知識,其中主要介紹了關於事件監聽的相關問題,實現事件監聽的步驟是創建事件、創建監聽、綁定事件與監聽接著觸發事件,以下根據範例一起來看一下,希望對大家有幫助。
【相關推薦:laravel影片教學】
Laravel Event & Listener 事件監聽機制,讓開發者不光是可以把程式碼組織得更有條理的手段,而且也是對現實社會運作規則的高度抽象化映射,我們的現實社會本來也是這樣,我們監控事物的變化,並對變化做出反應,讓事物的發展按照我們的預期發展。當現實映射到程式碼邏輯時,事件及其處理邏輯通常是分開的,畢竟不是所有的事件我們都需要馬上進行回應處理。結合隊列,我們可以把事件的監聽處理的工作流程做到更完美。
監聽log日誌檔案大小變更
使用者登入:記錄使用者登入次數、記錄存取相關資訊
1、建立事件:event
2、建立監聽:listener
3、綁定事件與監聽
4、觸發事件
1、建立登入事件:event
app/Events/UserLogin.php
php artisan make:event UserLogin//获取用户信息实例 public function __construct(User $user){ $this->user = $user;}
2、建立用戶登入郵件發送監聽,同時綁定UserLogin登入事件:listener
app/Listeners/EmailAdminUserLogin.php
php artisan make:listener EmailAdminUserLogin --event=UserLogin //日志打印登录用户信息public function handle(UserLogin $event) {// dd($event); //日志打印登录用户信息 Log::info($event->user->name . '已经登录'); }
3、註冊事件與監聽綁定關係
一個事件可以對應多個監聽
app/Providers/EventServiceProvider.php
protected $listen = [ 'App\Events\UserLogin' => [ 'App\Listeners\EmailAdminUserLogin', ],];
4、在使用者登入時觸發事件
app/Http/Controllers/Auth/LoginController.php
//覆写AuthenticatesUsers类的authenticated方法protected function authenticated(Request $request, $user){ //触发事件 event(new UserLogin($user));}
這裡會根據app/Providers/EventServiceProvider.php中屬性listen產生對應的事件與監聽
php artisan event:generate
【相關推薦: laravel影片教學】
以上是實例詳解Laravel事件監聽的詳細內容。更多資訊請關注PHP中文網其他相關文章!