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();