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

Собираемые данные
| Поле | Описание |
|---|---|
currentRoute.name | Имя маршрута (если именованный) |
currentRoute.pattern | URL-шаблон маршрута |
currentRoute.arguments | Совпавшие параметры маршрута |
currentRoute.host | Ограничение по хосту (если есть) |
currentRoute.uri | Фактический совпавший URI |
currentRoute.action | Обработчик контроллера/действия |
currentRoute.middlewares | Стек middleware маршрута |
currentRoute.matchTime | Время сопоставления маршрута (секунды) |
routes | Полная таблица маршрутов |
routesTree | Древовидная структура маршрутов |
Схема данных
{
"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
}Сводка (отображается в списке отладочных записей):
{
"router": {
"matchTime": 0.00012,
"name": "user.show",
"pattern": "/users/{id}"
}
}Контракт
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);INFO
RouterCollectorAppDevPanel\Kernel\Collector\RouterCollectorCaptures HTTP routing data: matched route, match timing, route tree. реализует SummaryCollectorInterfaceAppDevPanel\Kernel\Collector\SummaryCollectorInterfaceSummary data collector responsibility is to collect summary data for a collector. Summary is used to display a list of previous requests and select one to display full info. Its data set is specific to the list and is reduced compared to full data collected in {@see CollectorInterface}.. Не имеет зависимостей от других коллекторов.
Как это работает
Каждый адаптер фреймворка имеет RouterDataExtractor, который нормализует специфичные для фреймворка данные маршрутизации в общий формат:
- Symfony: Извлекает из
RouterInterfaceи атрибутов запроса - Laravel: Извлекает из фасада Router
Illuminate\Routing\RouterLaravel Router. Registers routes and dispatches HTTP requests to controllers. и совпавшего объектаRoute - Yii 3: Извлекает из результата UrlMatcherInterface
Symfony\Component\Routing\Matcher\UrlMatcherInterfaceSymfony Routing URL Matcher. Matches a URL path to a set of route parameters.
Панель отладки
- Совпавший маршрут — шаблон текущего маршрута, имя и совпавшие параметры
- Аргументы маршрута — пары ключ-значение разрешённых параметров
- Обработчик действия — класс контроллера и метод
- Время сопоставления — сколько времени заняло сопоставление маршрута