首頁 > php框架 > Laravel > 一起學習laravel中的事件以及觀察者吧!

一起學習laravel中的事件以及觀察者吧!

藏色散人
發布: 2021-08-18 09:01:53
轉載
2288 人瀏覽過

以下由laravel教學專欄為大家介紹laravel中的事件以及觀察者,希望對需要的朋友有幫助!

一:事件與監聽器

事件是一個比較廣泛的的名詞,他可以代表所做的一個動作。和事件一起出現的就是監聽器了,其作用是用來監聽你所做的事情,用來對你的行為做後續處理。
事件系統為應用各個方面的解耦提供了非常棒的方法,因為單一事件可以擁有多個互不依賴的監聽器。例如,你可能希望每次訂單發貨時向用戶發送通知。你可以寫一個可以被監聽的事件,而不是將訂單處理程式碼通知程式碼耦合在一起。

事件:
Laravel 框架想要建立事件可以透過以下指令來建立:

php artisan make:event 事件名称
登入後複製

該檔案會存放在 app/Events 目錄下方。

監聽器:

##建立監聽器可以使用下列指令來建立:

php artisan make:listener 监听器名称
登入後複製

註冊:

事件和監聽器在創建完畢後,還需要將二者聯合起來。我們可以在 EventServiceProvider 服務提供者中進行註冊。如下:

    protected $listen = [
        事件名称 => [
            监听器名称,
         .
        ],
    ];
登入後複製

分發

event(new TestEvent());
登入後複製

二:模型事件

模型事件是專門針對模型而額外新增的功能。其給我們創建了對應的事件與監聽。在使用模型事件事,我們需要遵守模型給我們的規則:

    retrieved:    取得到模型實例後觸發
  • creating:     插入到資料庫前觸發
  • #created:      插入資料庫後觸發
  • updating:更新至資料庫前觸發
  • updated:     更新至資料庫後觸發
  • saving:       儲存至資料庫前觸發(插入/在更新之前,無論插入或更新都會觸發)
  • saved:        儲存到資料庫後觸發(插入/更新之後,無論插入或更新都會觸發)
  • deleting:    從資料庫刪除記錄前觸發
  • deleted:      從數據庫刪除記錄後觸發
  • restoring:    恢復軟刪除記錄前觸發
  • restored:     恢復軟刪除記錄後觸發
需要在模型處綁定

protected $dispatchesEvents = [
        'saving' => \App\Events\TestEvent::class,
//        'updated' => \App\Events\TestEvent::class,
];
登入後複製

三:觀察者

#事件需要與監聽器關聯來,當監聽器變多了我們還需進行註冊實現,這樣會比較麻煩,這時我們可以考慮使用觀察者。如果在一個模型上監聽了多個事件,可以使用觀察者將這些監聽器組織到一個單獨的類別中。

觀察者使用:

觀察者的建立可以使用以下指令來建立:

php artisan make:observer
登入後複製
如果想要直接跟模型關聯起來,還可以直接加入參數與模型關聯:

php artisan make:observer UserObserver --model=User
登入後複製

觀察者註冊:在服務提供者中註冊

User::observe(UserObserver::class);
登入後複製
或在模型中註冊

public static function booted()
{
     self::observe(UserObserver::class);
}
登入後複製
相關推薦:

最新的五個Laravel影片教學

以上是一起學習laravel中的事件以及觀察者吧!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:jianshu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板