跳到內容

可追蹤的事件分派器

編輯此頁面

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 授權條款授權。
目錄
    版本