获取Symfony中控制器的路由列表?

时间:2015-03-19 04:18:03

标签: php symfony

我可以通过@Qoop获取https://stackoverflow.com/a/15950365/3900206上提到的控制器的所有路由列表(感谢他的分享)。

并且,它显示在dev和prod环境中运行时配置的不同路由。但是,我只想列出在开发环境中出现在prod环境中的路由。

如何从任何环境(dev或prod或test)中仅列出为prod环境配置的路由?

是否可以,因为我们可以从控制台列出特定于环境的路线:

php app/console router:debug --env=prod

更新(改善问题):

我正在寻找一种在任何环境(开发,测试或产品)中从控制器列出生产环境路线的方法

1 个答案:

答案 0 :(得分:3)

我不明白你已经拥有该命令,它可以采用--env选项你可以将它用于dev / prod或test

 php app/console router:debug --env=prod/test/dev

Edit2:

您可以使用您选择的环境创建自己的AppKernel,因为我无法知道您可以在当前内核上设置环境并不会产生任何影响。 例如,实例化一个内核prod并从其容器中获取路由器服务。 有关实例化新环境http://symfony.com/fr/doc/current/cookbook/configuration/environments.html

的更多信息
    $kernel = new \AppKernel('prod', true);

    $kernel->boot();

    /** @var $router \Symfony\Component\Routing\Router */
    $router = $kernel->getContainer()->get('router');

    $router->setOption('debug', true);
    /** @var $collection \Symfony\Component\Routing\RouteCollection */
    $collection = $router->getRouteCollection();
    $allRoutes = $collection->all();