laravel Event執行順序

世有因果知因求果發表於2015-08-02

  laravel一大特色就是event事件系統。一般首先要listen一個事件,隨後fire那個事件,這時執行路徑將會呼叫event handler,返回後繼續執行。例如:

Event::listen('user.login',function(\Kidsit\User $user){
    var_dump($user);
});
Route::get('event', function(){
    $user = \Kidsit\User::first();
    \Event::fire('user.login', $user);
    var_dump('fired');
});

 

在上面的程式碼片段中,首先要listen user.login這個事件,而在/event請求時,首先獲取一個user,隨後將該$user作為Event::fire函式的引數,立即呼叫user.login的事件處理函式,

將$user echo出來,再隨後返回/event請求處理函式,var_dump('fired').

也就是說event提供了一種"非同步"呼叫的方法,但是最終執行其實還是順序執行的,好處是,程式碼組織比較科學合理(即:listener可以放在任何地方)

 

相關文章