class EventManager implements EventManagerInterface

事件管理器

事件管理器的目的是为了通过创建"钩子"拦截框架或应用中的部分组件操作。 这些钩子允许开发者获得状态信息,操纵数据或者改变某个组件进程中的执行流向。

use Soli\Events\EventManager;
use Soli\Events\Event;

$eventManager = new EventManager();

// 注册具体的某个事件监听器
$eventManager->attach('application.boot', function (Event $event, $application) {
    echo "应用已启动\n";
});

// 也可以将针对 "application" 的事件统一整理到 AppEvents 类,一并注册
$eventManager->attach('application', new AppEvents);

// 触发某个具体事件
$eventManager->trigger('application.boot', $this);

Methods

attach(string $name, object $listener)

注册某个事件的监听器

detach(string $name, object $listener)

移除某个事件的监听器

mixed
trigger(string|EventInterface $event, object|string $target = null, mixed $data = null)

触发事件

void
clearListeners(string $name)

清除某个事件的监听器列表

array
getListeners(string $name)

获取某个事件的监听器列表

Details

at line 49
attach(string $name, object $listener)

注册某个事件的监听器

Parameters

string $name 事件名称
object $listener 监听器

at line 61
detach(string $name, object $listener)

移除某个事件的监听器

Parameters

string $name 事件名称
object $listener 监听器

at line 87
mixed trigger(string|EventInterface $event, object|string $target = null, mixed $data = null)

触发事件

$eventManager->trigger('dispatch.beforeDispatchLoop', $dispatcher);

$event = new Event('application.boot', $app); $eventManager->trigger($event);

Parameters

string|EventInterface $event 事件名称或事件对象实例
object|string $target 事件来源
mixed $data 事件相关数据

Return Value

mixed

Exceptions

InvalidArgumentException

at line 172
void clearListeners(string $name)

清除某个事件的监听器列表

Parameters

string $name

Return Value

void

at line 185
array getListeners(string $name)

获取某个事件的监听器列表

Parameters

string $name

Return Value

array