2015-03-19 64 views
1

我可以通過@Qoop獲得https://stackoverflow.com/a/15950365/3900206提及的所有控制器路由列表(感謝他分享)。獲取Symfony中的控制器路由列表?

而且,它顯示爲配置開發和督促環境中運行時不同的路線。但是,我只想列出在開發環境中出現在prod環境中的路由。

如何列出只有被配置爲督促環境不受任何環境(DEV或PROD或測試)的路線?

是否有可能,我們可以從控制檯列出環境的具體路線爲:

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

更新(改進的問題):

我正在尋找一種方式,列出的生產環境路線從控制器在任何環境(開發,測試或產品)

回答

3

我不明白你已經有命令,它可以採取--env選項,你可以使用它的dev/prod或測試

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

EDIT2:

您可以與您選擇,因爲沒有辦法,我知道關,你可以設置當前內核,其犯規使SENS環境的環境中創建自己的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(); 
+0

我已經更新了我的問題,我所尋求的是一種方式實現了從控制器類以上命令的結果。 – 2015-03-19 09:01:39

+0

@SanThapa你可以執行這個命令也可以通過php和exec(),除非你想要更多的結構化對象? – 2015-03-19 09:19:09

+0

謝謝,但我正在尋找另一種方法。如果有可能從命令那麼我認爲,它必須可能來自腳本。 – 2015-03-19 09:33:21