Простежуваний диспетчер подій
Дата оновлення перекладу 2023-08-21
Простежуваний диспетчер подій
TraceableEventDispatcher - це диспетчер подій, що огортає будь-який інший диспетчер подій, який потім можна використати для визначення, які слухачі подій викликалися диспетчером. Передайте диспетчер подій, який необхідно огорнути, і екземпляр Stopwatch його конструктору:
1 2 3 4 5 6 7 8 9 10
use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher;
use Symfony\Component\Stopwatch\Stopwatch;
// диспетчер подій для налагодження
$dispatcher = ...;
$traceableEventDispatcher = new TraceableEventDispatcher(
$dispatcher,
new Stopwatch()
);
Тепер TraceableEventDispatcher
може бути використаний як будь-який інший
диспетчер подій для реєстрації слухачів подій та оголошення подій:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
// ...
// реєструє слухача подій
$eventListener = ...;
$priority = ...;
$traceableEventDispatcher->addListener(
'event.the_name',
$eventListener,
$priority
);
// оголошує подію
$event = ...;
$traceableEventDispatcher->dispatch('event.the_name', $event);
Після того, як ваш додаток буде оброблений, ви можете використати метод getCalledListeners(), щоб вилучити масив слухачів подій, яки були викликані у вашому додатку. Схожим чином, метод getNotCalledListeners() повертає масив слухачів подій, які не викликалися:
1 2 3 4
// ...
$calledListeners = $traceableEventDispatcher->getCalledListeners();
$notCalledListeners = $traceableEventDispatcher->getNotCalledListeners();