【问题标题】:Get list of routes of controller in Symfony?获取 Symfony 中控制器的路由列表?
【发布时间】:2015-05-22 03:03:01
【问题描述】:

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

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

如何仅列出从任何环境(开发或生产或测试)中为生产环境配置的那些路由?

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

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

更新(改进问题):

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

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    我不明白你已经有这个命令,它可以带 --env 选项,你可以将它用于开发/生产或测试

     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();
    

    【讨论】:

    • 我已经更新了我的问题,我正在寻找一种从控制器类实现上述命令结果的方法。
    • @SanThapa 除非您想要更多结构化对象,否则您也可以通过 php 使用 exec() 执行此命令?
    • 谢谢,但我正在寻找另一种方法。如果可以通过命令,那么我认为,它必须可以通过脚本。
    • @SanThapa 我已经编辑了我的答案,这个你应该有所有路线,如果有帮助,请给我反馈
    • 我已经通过问题中提到的链接实现了这一点。它输出运行环境的所有路由,但我的意思是获取生产环境的路由,仅独立于应用程序运行的环境。
    猜你喜欢
    • 1970-01-01
    • 2021-08-10
    • 2018-08-15
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多