РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1199 of 1361 menu

Команда debug:router

Команда debug:router выводит таблицу всех маршрутов, зарегистрированных в приложении Symfony. Для каждого маршрута показывается его имя, HTTP-метод, путь URL и привязанный контроллер. Первым параметром можно передать имя конкретного маршрута, чтобы получить подробную информацию только о нём. Команда доступна только в окружении разработки и помогает быстро находить нужные адреса и проверять корректность настроек роутинга.

Синтаксис

php bin/console debug:router [name]

Пример

Давайте создадим контроллер с двумя маршрутами:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/', name: 'article_index')] public function index(): Response { return new Response('hello'); } #[Route('/user/{name}', name: 'article_user')] public function user(string $name): Response { return new Response($name); } } ?>

Теперь выведем список всех маршрутов:

php bin/console debug:router

Результат выполнения команды:

-------- --------------- -------- ------ ----------------------- Name Method Scheme Host Path -------- --------------- -------- ------ ----------------------- article_index ANY ANY ANY / article_user ANY ANY ANY /user/{name} -------- --------------- -------- ------ -----------------------

Пример

Давайте получим подробную информацию о конкретном маршруте article_user:

php bin/console debug:router article_user

Результат выполнения команды:

+--------------+---------------------------------------------------------+ | Property | Value | +--------------+---------------------------------------------------------+ | Route Name | article_user | | Path | /user/{name} | | Path Regex | #^/user/(?P<name>[^/]++)$#sD | | Host | ANY | | Scheme | ANY | | Methods | ANY | | Defaults | _controller: App\Controller\ArticleController::user() | | Requirements | NO CUSTOM | | Options | compiler_class: Symfony\Component\Routing\RouteCompiler | +--------------+---------------------------------------------------------+

Здесь видно регулярное выражение пути, требования к параметрам, привязанный контроллер и другие настройки маршрута.

Пример

Давайте ограничим маршрут только GET-запросом и зададим требование к параметру name:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/user/{name}', name: 'article_user', methods: ['GET'], requirements: ['name' => '\d+'])] public function user(string $name): Response { return new Response($name); } } ?>

Теперь выведем информацию о маршруте:

php bin/console debug:router article_user

Результат выполнения команды:

+--------------+---------------------------------------------------------+ | Property | Value | +--------------+---------------------------------------------------------+ | Route Name | article_user | | Path | /user/{name} | | Path Regex | #^/user/(?P<name>\d+)$#sD | | Host | ANY | | Scheme | ANY | | Methods | GET | | Defaults | _controller: App\Controller\ArticleController::user() | | Requirements | name: \d+ | | Options | compiler_class: Symfony\Component\Routing\RouteCompiler | +--------------+---------------------------------------------------------+

В колонке Requirements появилось требование name: \d+, а в Methods - только GET.

Смотрите также

  • команда router:match,
    которая показывает, какой маршрут соответствует URL
  • команда debug:container,
    которая выводит список сервисов контейнера
  • команда list,
    которая выводит список всех доступных команд
  • команда help,
    которая показывает справку по команде
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить