laravel Event执行顺序

时间:2023-03-08 18:32:47

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