首頁  >  文章  >  php框架  >  實例詳解Laravel事件監聽

實例詳解Laravel事件監聽

WBOY
WBOY轉載
2022-04-12 11:48:322264瀏覽

本篇文章為大家帶來了關於laravel的相關知識,其中主要介紹了關於事件監聽的相關問題,實現事件監聽的步驟是創建事件、創建監聽、綁定事件與監聽接著觸發事件,以下根據範例一起來看一下,希望對大家有幫助。

實例詳解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 . '已经登录');
    }

實例詳解Laravel事件監聽

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中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除