可追蹤的事件分派器
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 授權條款授權。