Symfony 4 打印所有路线

Symfony 4 print all routes

我正在尝试设置一个索引页面,它将打印出 API 中的所有端点(使用 Symfony 4)。

在 Symfony 2 中,您可以获得路由器并通过容器然后收集路由。但是在 Symfony 4 中,您似乎无法直接访问容器。

Google 搜索似乎没有产生我正在寻找的精确结果。在 Symfony 4 或类似软件中是否有替代方法?

在任何控制器中使用,这将return你一个可用的路由对象数组。

$router = $this->get('router');
$routes = $router->getRouteCollection()->all();

所以我把这些碎片放在一起:

最简单的方法似乎是注入 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();
    // ...
}