在Symfony Command中使用自定义环境

时间:2014-10-21 09:53:49

标签: php symfony command-line

我尝试使用我放在config_staging.yml文件中的一些自定义参数运行命令。

这是我想要的参数(位于我的config_staging中)

parameters:
  bdd_name: 'ISB_bdd'

同样的参数也在config_dev中(它是db名称,它为每个env都改变了)

parameters:
  bdd_name: 'DEV_ISB_bdd'

这是我命令文件中的代码:

<?php
namespace SafeEngine\ParserFluxBundle\Command;

use [..]


class GetFluxToProcessCommand extends ContainerAwareCommand
{
  protected function configure()
  {
      $this
          ->setName('parser:GetFluxToProcess')
       [...]
        );
}

protected function execute(InputInterface $input, OutputInterface $output)
{
    $tableTransactions = $this->getContainer()->getParameter('ISB_bdd');
    var_dump($tableTransactions):

[...]

然后我跑

php app/console parser:GetFluxToProcess -e staging

但是var_dump返回DEV_ISB_bdd配置文件中的参数dev,而不是staging配置中的参数。看起来Symfony不会切换环境并保留默认值,

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您需要使缓存和日志目录可写。为此,请阅读文档:http://symfony.com/doc/current/book/installation.html#configuration-and-setup。例如,对于具有ACL支持的系统,您可以使用:

HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs
sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs

之后清除缓存,您将更新登台环境的配置文件。