Symfony 如何创建/安装新环境所需的新route_xxx.php文件

Symfony 如何创建/安装新环境所需的新route_xxx.php文件,symfony,environment,Symfony,Environment,对于我的symfony应用程序,除了现有的“dev”和“prod”之外,我还需要创建一个新的环境“qa” 我添加了web/app_qa.php,包括 $kernel = new AppKernel('qa', true); 我在app/config中创建了config_qa.yml和routing_qa.yml。当我试着跑的时候 app/console server:run --env=qa 我收到一条关于找不到router_qa.php的消息。其他环境(router_dev.php和rou

对于我的symfony应用程序,除了现有的“dev”和“prod”之外,我还需要创建一个新的环境“qa”

我添加了web/app_qa.php,包括

$kernel = new AppKernel('qa', true);
我在app/config中创建了config_qa.yml和routing_qa.yml。当我试着跑的时候

app/console server:run --env=qa
我收到一条关于找不到router_qa.php的消息。其他环境(router_dev.php和router_prod.php)的文件位于vendor/symfony/symfony/src/symfony/Bundle/FrameworkBundle/Resources/config中。如果我使用

app/console server:run --env=qa --router=vendor/symfony/.../router_prod.php
(…指示路径的其余部分)然后它会很好地启动

我的config_qa.yml包含一个路由_qa.yml规范,但我无法找到一种方法来指定router_prod.php。若我将router_prod.php复制到app/config,startup仍然会抱怨它丢失了。我可以将副本放在symfony供应商树中,但这似乎很困难,我必须为每次部署制作副本

关于正确的方法有什么建议吗


我正在ubuntu 14.04.4 LTS上运行symfony 2.5.12,下面的方法很难看,但很有效

  • 我使用中的说明生成web/app_qa.php和app/config/config_qa.yml,如问题中所述
  • 我添加了app/Resources/config/router_qa.php。这是vendor/symfony/symfony/src/symfony/Bundle/FrameworkBundle/Resources/config/router\u prod.php的副本,将“app.php”替换为“app\u qa.php”
  • 我修改了应用程序/内核,添加了以下内容:

(毫无疑问,这是一种简单的一行方法,但我在阅读symfony文档的几个小时内找不到它)。

下面的方法很难看,但很有效

  • 我使用中的说明生成web/app_qa.php和app/config/config_qa.yml,如问题中所述
  • 我添加了app/Resources/config/router_qa.php。这是vendor/symfony/symfony/src/symfony/Bundle/FrameworkBundle/Resources/config/router\u prod.php的副本,将“app.php”替换为“app\u qa.php”
  • 我修改了应用程序/内核,添加了以下内容:

(毫无疑问,这是一种简单的单行方法,但我在阅读symfony docs的几个小时内找不到它)。

你看过文档了吗?是的,我正在使用的是烹饪书页面。就目前而言,这很好,但没有提到如何解决router_xxx.php问题。我可以通过在“app/console server:run”中添加路由规范来解决这个问题,但这对nginx不起作用。你看过文档了吗?是的,那本食谱就是我正在用的。就目前而言,这很好,但没有提到如何解决router_xxx.php问题。我可以通过在“app/console server:run”中添加路由规范来解决这个问题,但这对nginx不起作用。

    public function locateResource($name, $dir = null, $first = true)
    {
        if ($name == "@FrameworkBundle/Resources/config/router_qa.php")
        {
            return(__DIR__ . "/Resources/config/router_qa.php");
        }
        return(parent::locateResource($name, $dir, $first));
    }