牛骨文教育服务平台(让学习变的简单)

事件订阅者

定义事件订阅者

事件订阅者是个可以从类自身里面订阅多个事件的类。订阅者应该定义 subscribe 方法,事件配送器实体将会被传递到这个方法:

class UserEventHandler {

    /**
     * 处理用户登录事件。
     */
    public function onUserLogin($event)
    {
        //
    }

    /**
     * 处理用户注销事件。
     */
    public function onUserLogout($event)
    {
        //
    }

    /**
     * 注册监听器给订阅者。
     *
     * @param  IlluminateEventsDispatcher  $events
     * @return array
     */
    public function subscribe($events)
    {
        $events->listen("AppEventsUserLoggedIn", "UserEventHandler@onUserLogin");

        $events->listen("AppEventsUserLoggedOut", "UserEventHandler@onUserLogout");
    }

}

注册事件订阅者

当定义了订阅者后,可以使用 Event 类注册。

$subscriber = new UserEventHandler;

Event::subscribe($subscriber);

你也可以使用 服务容器 自动解析订阅者。简单地传递订阅者的名字给 subscribe 方法就可以做到:

Event::subscribe("UserEventHandler");