跳到内容

可追踪事件调度器

编辑此页

The TraceableEventDispatcher 是一个事件调度器,它可以包装任何其他事件调度器,然后可以用来确定调度器调用了哪些事件监听器。将要包装的事件调度器和 Stopwatch 的实例传递给它的构造函数

1
2
3
4
5
6
7
8
9
10
use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher;
use Symfony\Component\Stopwatch\Stopwatch;

// the event dispatcher to debug
$dispatcher = ...;

$traceableEventDispatcher = new TraceableEventDispatcher(
    $dispatcher,
    new Stopwatch()
);

现在,TraceableEventDispatcher 可以像任何其他事件调度器一样用于注册事件监听器和调度事件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// ...

// registers an event listener
$eventListener = ...;
$priority = ...;
$traceableEventDispatcher->addListener(
    'event.the_name',
    $eventListener,
    $priority
);

// dispatches an event
$event = ...;
$traceableEventDispatcher->dispatch($event, 'event.the_name');

在你的应用程序被处理后,你可以使用 getCalledListeners() 方法来检索应用程序中已被调用的事件监听器数组。类似地,getNotCalledListeners() 方法返回一个尚未被调用的事件监听器数组

1
2
3
4
// ...

$calledListeners = $traceableEventDispatcher->getCalledListeners();
$notCalledListeners = $traceableEventDispatcher->getNotCalledListeners();
本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本