Symfony 4 распечатать все маршруты

Я пытаюсь настроить страницу индекса, которая будет распечатывать все конечные точки в API (используя Symfony 4).

В Symfony 2 вы можете получить маршрутизатор и через контейнер, а затем набор маршрутов. Но, похоже, у вас нет доступа к контейнеру прямо из коробки в Symfony 4.

Поиск в Google, похоже, не дает точного результата, который я ищу. Есть ли альтернативный способ сделать это в Symfony 4 или что-то подобное?

2 ответа

Решение

Итак, я собрал кусочки вместе:

Самый простой способ, кажется, вводить Symfony\Component\Routing\RouterInterface а затем использовать его как Router, Как я уже упоминал в вопросе, вы можете получить маршруты с помощью $router->getRouteCollection()->all() где $router это введенная зависимость.

Например:

use Symfony\Component\Routing\RouterInterface;

public function someMethodInController(Request $request, RouterInterface $router)
{
    $routes = $router->getRouteCollection()->all();
    // ...
}

Используйте в любом контроллере, это вернет вам массив доступных объектов маршрута.

$router = $this->get('router');
$routes = $router->getRouteCollection()->all();
Другие вопросы по тегам