有没有办法计算我们在Symfony2上有多少路线?
我可以使用此控制台命令获取生产环境中可用的路径列表:
$ app/console router:debug -e prod
但我想以编程方式计算它。
答案 0 :(得分:1)
一种方法是使用路由器服务。 如果您在控制器内使用它,您可以通过以下方式获得计数:
$routesCount = $this->get('router')->getRouteCollection()->count()
但是如果你想在另一个地方进行计数,你应该使用服务容器(这是控制器为你做的)。 如果您不熟悉Symfony服务容器或想要了解有关此功能的更多信息,请参阅文档here。
答案 1 :(得分:0)
好吧,您可以利用该命令并使用wc
来计算路径
// Count the number of routes in the system
// Subtract the number of header lines (2) from the result
$numRoutes = (int) `php app/console router:debug -e prod | wc -l` - 2;
它有点笨重但它有效。如果你愿意的话,你可能会更复杂一点,把它放到你自己的Command中。