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.