对于我的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包含routing_qa.yml的规范,但我无法找到指定router_prod.php的方法。如果我将router_prod.php复制到app / config,启动仍然会抱怨它丢失了。我可以将副本放在symfony供应商树中,但这看起来很糟糕,而且我必须为每个部署制作副本。
有关正确方法的任何建议吗?
我在ubuntu 14.04.4 LTS上运行symfony 2.5.12
答案 0 :(得分:0)
以下方法很难看,但有效。
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)); }
(毫无疑问,这是一种简单的单线方法,但在阅读symfony docs的几个小时内我无法找到它。)