感谢你来到这里
我真的很激动
盼望,能有你的支持
捐赠可扫描二维码转账支付
支付宝扫一扫付款
微信扫一扫付款
(微信为保护隐私,不显示你的昵称)
TraceableEventDispatcher
是“把其他事件派遣器进行打包,然后让它们决定调用哪个监听器”这样一个event dispatcher(译注:类名中的Traceable是“可追踪的”之意)。在它的构造器中,传入待包装的event dispatcher,和一个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 对事件派遣器进行除错
$eventDispatcher = ...;
$traceableEventDispatcher = new TraceableEventDispatcher(
$eventDispatcher,
new Stopwatch()
); |
现在,TraceableEventDispatcher
可以像其他的事件派遣器一样被使用了,可以注册监听并派遣事件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // ...
// register an event listener 注册一个监听
$eventListener = ...;
$priority = ...;
$traceableEventDispatcher->addListener(
'event.the_name',
$eventListener,
$priority
);
// dispatch an event 将事件派遣
$event = ...;
$traceableEventDispatcher->dispatch('event.the_name', $event); |
当你的程序被处理后,你可以使用getCalledListeners()
方法来取出一个“在你的程序中被调用过的”监听器的数组(译注:即是通过traceable的dispatcher追踪到了一组特定的监听)。类似的,getNotCalledListeners()
方法则返回那些没被调用的监听数组:
1 2 3 4 | // ...
$calledListeners = $traceableEventDispatcher->getCalledListeners();
$notCalledListeners = $traceableEventDispatcher->getNotCalledListeners(); |
本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。