Symfony 4打印所有路线

Rok*_*Dev 4 php symfony symfony-routing symfony4

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

在Symfony 2中,您可以通过容器获得路由器,然后收集路由。但似乎您无法立即使用Symfony 4中的容器。

Google搜索似乎无法产生我想要的精确结果。Symfony 4或类似工具中有其他替代方法吗?

Zep*_*ppe 7

在任何控制器中使用,这将返回一组可用的路由对象。

$router = $this->get('router');
$routes = $router->getRouteCollection()->all();
Run Code Online (Sandbox Code Playgroud)

  • 你应该总是添加一个解释,让人们理解而不是知道如何 (4认同)

Rok*_*Dev 6

因此,我将各个部分放在一起:

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