Skip to content

Коллектор сервисов

Захватывает вызовы методов сервисов DI-контейнера — вызванный сервис, метод, аргументы, результат и время выполнения.

Панель коллектора сервисов

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

ПолеОписание
serviceИдентификатор сервиса
classИмя класса сервиса
methodВызванный метод
argumentsАргументы метода
resultВозвращаемое значение
statusСтатус вызова (success или error)
errorСообщение об ошибке при неудаче
timeStartВремя начала вызова
timeEndВремя завершения вызова

Схема данных

json
[
    {
        "service": "App\\Service\\UserService",
        "class": "App\\Service\\UserService",
        "method": "findById",
        "arguments": [42],
        "result": {"id": 42, "name": "John"},
        "status": "success",
        "error": null,
        "timeStart": 1711878000.100,
        "timeEnd": 1711878000.105
    }
]

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

json
{
    "service": {
        "total": 5
    }
}

Контракт

php
use AppDevPanel\Kernel\Collector\ServiceCollector;
use AppDevPanel\Kernel\Event\MethodCallRecord;

$collector->collect(new MethodCallRecord(
    service: 'App\\Service\\UserService',
    class: 'App\\Service\\UserService',
    method: 'findById',
    arguments: [42],
    result: $result,
    status: 'success',
    timeStart: $start,
    timeEnd: $end,
));

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

Коллектор получает данные от ContainerInterfaceProxyAppDevPanel\Adapter\Yii3\Proxy\ContainerInterfaceProxyDecorator proxy for Container Interface. Intercepts calls and forwards data to collectors.final Adapter/Yii3 · class · implements ContainerInterface, который оборачивает PSR-11 ContainerInterfacePsr\Container\ContainerInterfacePSR-11 Container Interface. Describes the interface of a dependency injection container.PSR-11 · interface. Когда сервисы разрешаются и их методы вызываются через прокси, вызовы перехватываются и записываются.

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

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

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