class EventManager implements EventManagerInterface

事件管理器

管理事件的注册、删除和调度(触发)。

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

$eventManager = new EventManager();

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

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

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

Methods

attach(string $name, object $listener)

注册某个事件的监听器

detach(string $name, object $listener)

移除某个事件的监听器

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

触发事件

void
clearListeners(string $name)

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

array
getListeners(string $name)

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

Details

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

注册某个事件的监听器

Parameters

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

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

移除某个事件的监听器

Parameters

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

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

触发事件

$eventManager->trigger('app.boot', $app, $data);

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

Parameters

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

Return Value

bool 是否执行了当前事件的监听器

Exceptions

InvalidArgumentException

at line 182
void clearListeners(string $name)

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

Parameters

string $name 事件名称

Return Value

void

at line 195
array getListeners(string $name)

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

Parameters

string $name 事件名称

Return Value

array