Symfony 1.4: программно установленная среда для CLI - PullRequest
3 голосов
/ 30 марта 2010

У меня есть проект, построенный на Symfony 1.4, и он имеет несколько сред - у каждого разработчика есть своя копия, установленная на его локальном компьютере, и, следовательно, своя собственная среда.

Я могу динамически устанавливать среду в index.php, но как я могу сделать это для задач CLI?

Конечно, я мог бы использовать --env = myenvironment для всех задач, но я бы предпочел, чтобы он мог использовать ту же логику, что и в index.php

Ответы [ 3 ]

2 голосов
/ 27 июля 2010

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

1 голос
/ 20 октября 2010

Я вижу, что на этот вопрос было много мнений, поэтому просто для справки я публикую решение, которое я придумала.

В конце концов я придумал решение для доступа через Интернет и через интерфейс командной строки, поэтому каждая установка может определять, какую среду использовать, не затрагивая что-либо в Subversion:

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

0 голосов
/ 30 марта 2010

Вы можете сделать что-то похожее в этой задаче, возможно:

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),
  }
}

Выше должно работать; по умолчанию используется среда prod, если файл environment.cfg не существует. Это также предполагает, что в файле есть только среда (например, «prod», «dev», «slappythefish» и т. Д.).

...