Skip to content

Коллектор middleware

Захватывает выполнение стека HTTP middleware — фазы обработки до и после с временем выполнения и использованием памяти.

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

ПолеОписание
beforeStackMiddleware, вызванные до обработчика действия
actionHandlerОсновной обработчик действия/контроллера
afterStackMiddleware, вызванные после обработчика действия

Каждая запись middleware содержит:

ПолеОписание
nameИмя класса middleware
timeВременная метка выполнения
memoryИспользование памяти в этой точке
requestСостояние запроса (стек до)
responseСостояние ответа (стек после)

Схема данных

json
{
    "beforeStack": [
        {"name": "App\\Middleware\\AuthMiddleware", "time": 1711878000.100, "memory": 2097152, "request": "..."}
    ],
    "actionHandler": {
        "name": "App\\Controller\\UserController::index",
        "startTime": 1711878000.105,
        "request": "...",
        "response": "...",
        "endTime": 1711878000.120,
        "memory": 4194304
    },
    "afterStack": [
        {"name": "App\\Middleware\\CorsMiddleware", "time": 1711878000.121, "memory": 4194304, "response": "..."}
    ]
}

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

json
{
    "middleware": {
        "total": 5
    }
}

Контракт

php
use AppDevPanel\Kernel\Collector\MiddlewareCollector;

$collector->collectBefore(
    name: 'App\\Middleware\\AuthMiddleware',
    time: microtime(true),
    memory: memory_get_usage(),
    request: $request,
);

$collector->collectAfter(
    name: 'App\\Middleware\\CorsMiddleware',
    time: microtime(true),
    memory: memory_get_usage(),
    response: $response,
);

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

Адаптеры фреймворков инструментируют конвейер middleware:

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

  • Стек middleware — визуальный конвейер до/после с обработчиком действия в середине
  • Время выполнения — время выполнения каждого middleware
  • Отслеживание памяти — изменение использования памяти по конвейеру

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