Skip to content

Коллектор событий ​

Захватывает PSR-14 диспетчеризованные события с замерами времени, метаданными слушателей и местоположением в исходном коде.

Панель коллектора событий

Собираемые данные ​

ПолеОписание
nameИмя класса события
eventСериализованный объект события
fileФайл исходного кода вызова диспетчеризации
lineСтрока исходного кода вызова диспетчеризации
timeВременная метка диспетчеризации события

Схема данных ​

json
[
    {
        "name": "App\\Event\\UserRegistered",
        "event": "object@App\\Event\\UserRegistered#12",
        "file": "/app/src/UserService.php",
        "line": "42",
        "time": 1711878000.456
    }
]

Сводка (отображается в списке отладочных записей):

json
{
    "event": {
        "total": 8
    }
}

Контракт ​

php
use AppDevPanel\Kernel\Collector\EventCollector;

$collector->collect(
    event: $event,     // The dispatched event object
    line: '/app/src/UserService.php:42',
);

Как это работает ​

Коллектор получает данные от EventDispatcherInterfaceProxyAppDevPanel\Kernel\Collector\EventDispatcherInterfaceProxyDecorator proxy for Event Dispatcher Interface. Intercepts calls and forwards data to collectors.final Kernel · class · implements EventDispatcherInterface — декоратора PSR-14 EventDispatcherInterfacePsr\EventDispatcher\EventDispatcherInterfacePSR-14 Event Dispatcher Interface. Defines a dispatcher for events.PSR-14 · interface. Каждый вызов $dispatcher->dispatch($event) перехватывается, замеряется по времени и передаётся коллектору.

Адаптеры фреймворков регистрируют прокси автоматически.

Панель отладки ​

  • Бейджи типов событий — цветовая кодировка по категории события (запрос, ответ, контроллер и т.д.)
  • Хронологический список — события отображаются в порядке диспетчеризации с временными метками
  • Раскрываемые подробности — нажмите для просмотра полного объекта события и цепочки слушателей
  • Счётчик событий — общее количество событий отображается в бейдже боковой панели

Выпущено под лицензией MIT.