以下由laravel教學專欄為大家介紹laravel中的事件以及觀察者,希望對需要的朋友有幫助!
一:事件與監聽器
事件是一個比較廣泛的的名詞,他可以代表所做的一個動作。和事件一起出現的就是監聽器了,其作用是用來監聽你所做的事情,用來對你的行為做後續處理。
事件系統為應用各個方面的解耦提供了非常棒的方法,因為單一事件可以擁有多個互不依賴的監聽器。例如,你可能希望每次訂單發貨時向用戶發送通知。你可以寫一個可以被監聽的事件,而不是將訂單處理程式碼通知程式碼耦合在一起。
事件:
Laravel 框架想要建立事件可以透過以下指令來建立:
php artisan make:event 事件名称
該檔案會存放在 app/Events 目錄下方。
監聽器:
##建立監聽器可以使用下列指令來建立:php artisan make:listener 监听器名称
註冊:
事件和監聽器在創建完畢後,還需要將二者聯合起來。我們可以在 EventServiceProvider 服務提供者中進行註冊。如下:protected $listen = [ 事件名称 => [ 监听器名称, . ], ];
分發
event(new TestEvent());
二:模型事件
模型事件是專門針對模型而額外新增的功能。其給我們創建了對應的事件與監聽。在使用模型事件事,我們需要遵守模型給我們的規則: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中的事件以及觀察者吧!的詳細內容。更多資訊請關注PHP中文網其他相關文章!