Skip to content

Коллектор маршрутизатора

Захватывает данные сопоставления HTTP-маршрутов — совпавший маршрут, шаблон, аргументы, время сопоставления и полное дерево маршрутов.

Панель коллектора маршрутизатора

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

ПолеОписание
currentRoute.nameИмя маршрута (если именованный)
currentRoute.patternURL-шаблон маршрута
currentRoute.argumentsСовпавшие параметры маршрута
currentRoute.hostОграничение по хосту (если есть)
currentRoute.uriФактический совпавший URI
currentRoute.actionОбработчик контроллера/действия
currentRoute.middlewaresСтек middleware маршрута
currentRoute.matchTimeВремя сопоставления маршрута (секунды)
routesПолная таблица маршрутов
routesTreeДревовидная структура маршрутов

Схема данных

json
{
    "currentRoute": {
        "matchTime": 0.00012,
        "name": "user.show",
        "pattern": "/users/{id}",
        "arguments": {"id": "42"},
        "host": null,
        "uri": "/users/42",
        "action": "App\\Controller\\UserController::show",
        "middlewares": ["auth", "throttle"]
    },
    "routes": [...],
    "routesTree": [...],
    "routeTime": 0.00012
}

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

json
{
    "router": {
        "matchTime": 0.00012,
        "name": "user.show",
        "pattern": "/users/{id}"
    }
}

Контракт

php
use AppDevPanel\Kernel\Collector\RouterCollector;

$collector->collectMatchedRoute([
    'name' => 'user.show',
    'pattern' => '/users/{id}',
    'arguments' => ['id' => '42'],
    'host' => null,
    'uri' => '/users/42',
    'action' => 'App\\Controller\\UserController::show',
    'middlewares' => ['auth', 'throttle'],
]);
$collector->collectMatchTime(matchTime: 0.00012);
$collector->collectRoutes(routes: $allRoutes, routesTree: $routeTree);

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

Каждый адаптер фреймворка имеет RouterDataExtractor, который нормализует специфичные для фреймворка данные маршрутизации в общий формат:

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

  • Совпавший маршрут — шаблон текущего маршрута, имя и совпавшие параметры
  • Аргументы маршрута — пары ключ-значение разрешённых параметров
  • Обработчик действия — класс контроллера и метод
  • Время сопоставления — сколько времени заняло сопоставление маршрута

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