代码之家  ›  专栏  ›  技术社区  ›  SlappyTheFish

Symfony 1.4:以编程方式为CLI设置环境

  •  3
  • SlappyTheFish  · 技术社区  · 16 年前

    我有一个基于symfony1.4的项目,它有多个环境-每个开发人员都有自己的副本安装在本地机器上,因此有自己的环境。

    我可以在index.php中动态设置环境,但如何为CLI任务设置环境?

    我当然可以在所有任务上使用--env=myenvironment,但我更希望它能够使用与index.php中相同的逻辑

    3 回复  |  直到 7 年前
        1
  •  2
  •   cdeszaq Sudhir N    14 年前

    sfContext::getInstance()->getConfiguration()->getEnvironment()

        2
  •  1
  •   SlappyTheFish    15 年前

    我看到这个问题有很多观点,所以我把我提出的解决方案贴出来仅供参考。

    http://www.4pmp.com/2010/10/programmatically-set-environment-for-symfony-project/

        3
  •  0
  •   richsage    16 年前

    您可以在任务中执行类似的操作:

    class MyTask extends sfBaseTask
    {
      protected function configure()
      {
        // Env config file
        $file = sfConfig::get("sf_config_dir") . DIRECTORY_SEPARATOR . "environment.cfg";
        $env = (file_exists($file) ? file_get_contents($file) : "prod");
    
        $this->addOptions(array(
          new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', $env),
      }
    }
    

    上述方法应该有效;如果environment.cfg文件不存在,则默认为“prod”环境。这还假设文件中只有环境(例如“prod”、“dev”、“slappythefish”等)。