获取 Symfony 中控制器的路由列表?
Get list of routes of controller in Symfony?
我能够获取控制器的所有路由列表,正如@Qoop 在 中提到的那样(感谢他的分享)。
而且,在开发和生产环境中 运行 时,它会显示不同的配置路由。但是,我只想列出在开发环境中出现在生产环境中的路由。
如何从任何环境(开发或生产或测试)中仅列出为生产环境配置的那些路由?
是否可行,因为我们可以从控制台列出环境特定路由:
php app/console router:debug --env=prod
更新(改进问题):
我正在寻找一种在任何环境(开发、测试或生产)中从控制器列出生产环境路由的方法
我不明白你已经有了命令,它可以带 --env 选项,你可以将它用于 dev/prod 或测试
php app/console router:debug --env=prod/test/dev
编辑2:
您可以使用您选择的环境创建您自己的 AppKernel,因为我知道您无法在当前内核上设置环境,这不会产生任何意义。
例如,实例化一个内核产品并从其容器中获取路由器服务。
有关实例化新环境的更多信息 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();
我能够获取控制器的所有路由列表,正如@Qoop 在 中提到的那样(感谢他的分享)。
而且,在开发和生产环境中 运行 时,它会显示不同的配置路由。但是,我只想列出在开发环境中出现在生产环境中的路由。
如何从任何环境(开发或生产或测试)中仅列出为生产环境配置的那些路由?
是否可行,因为我们可以从控制台列出环境特定路由:
php app/console router:debug --env=prod
更新(改进问题):
我正在寻找一种在任何环境(开发、测试或生产)中从控制器列出生产环境路由的方法
我不明白你已经有了命令,它可以带 --env 选项,你可以将它用于 dev/prod 或测试
php app/console router:debug --env=prod/test/dev
编辑2:
您可以使用您选择的环境创建您自己的 AppKernel,因为我知道您无法在当前内核上设置环境,这不会产生任何意义。 例如,实例化一个内核产品并从其容器中获取路由器服务。 有关实例化新环境的更多信息 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();