事件订阅者
最后更新于:2022-04-01 15:08:02
## 定义事件订阅者
事件订阅者是个可以从类自身里面订阅多个事件的类。订阅者应该定义 subscribe 方法,事件配送器实体将会被传递到这个方法:
~~~
class UserEventHandler {
/**
* 处理用户登录事件。
*/
public function onUserLogin($event)
{
//
}
/**
* 处理用户注销事件。
*/
public function onUserLogout($event)
{
//
}
/**
* 注册监听器给订阅者。
*
* @param Illuminate\Events\Dispatcher $events
* @return array
*/
public function subscribe($events)
{
$events->listen('App\Events\UserLoggedIn', 'UserEventHandler@onUserLogin');
$events->listen('App\Events\UserLoggedOut', 'UserEventHandler@onUserLogout');
}
}
~~~
## 注册事件订阅者
当定义了订阅者后,可以使用 Event 类注册。
~~~
$subscriber = new UserEventHandler;
Event::subscribe($subscriber);
~~~
你也可以使用 服务容器 自动解析订阅者。简单地传递订阅者的名字给 subscribe 方法就可以做到:
`Event::subscribe('UserEventHandler');`