Symfony 4打印所有路线

时间:2018-05-30 12:15:21

标签: php symfony symfony4 symfony-routing

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

在Symfony 2中,您可以通过容器获取路由器,然后收集路由。但是,似乎你没有在Symfony 4中开箱即用的容器。

谷歌搜索似乎没有产生我正在寻找的精确结果。在Symfony 4或类似的东西中是否有另一种方法可以做到这一点?

2 个答案:

答案 0 :(得分:6)

所以我把各个部分放在一起:

最简单的方法似乎是注入Symfony\Component\Routing\RouterInterface然后将其用作Router。正如我在问题中提到的,您可以使用$router->getRouteCollection()->all()获取路由,其中​​$router是注入的依赖项。

E.g:

use Symfony\Component\Routing\RouterInterface;

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

答案 1 :(得分:4)

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

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