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

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

藏色散人
藏色散人轉載
2021-08-13 14:18:122205瀏覽

以下由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刪除