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可以放在任何地方)