Если вы слушаете событие Symfony Kernel, вы сможете получить текущий запрос из события, вызвав getRequest()
для этого события. Возможно, вам придется проверить, является ли это текущий запрос, то есть вы не имеете дело с подзапросом, но я опущу это здесь.
Как только у вас есть запрос, проверка, соответствует ли маршрут шаблону или не захвачен шаблоном, так же просто, как выполнить preg_match()
, или в более простых случаях просто сравнение строк, например:
if (strpos($request->getPathInfo(), '/admin/') === 0) {
return
}
// Do your thing
Это пропустит событие, когда ваш маршрут начинается с /admin/
, и выполнит все, что вы положили вместо комментария, если оно не соответствует этому шаблону администратора.
Если вы хотите проверить, соответствует ли определенное имя маршрута, вы также можете извлечь атрибут _route
из запроса:
$routeName = $request->attributes->get('_route');
Затем вы можете проверить маршрутизатор для получения дополнительной информации об этом маршруте, например, с именами маршрутов, например, проверяя определенный префикс и делайте все, что хотите.