3

Symfony 1.4 でビルドされたプロジェクトがあり、複数の環境があります。各開発者は、ローカル マシンに独自のコピーをインストールしているため、独自の環境を持っています。

index.php で環境を動的に設定できますが、CLI タスクでこれを行うにはどうすればよいですか?

もちろん、すべてのタスクで --env=myenvironment を使用することもできますが、index.php と同じロジックを使用できるようにしたいと考えています。

4

3 に答える 3

2

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

于 2010-07-26T20:56:00.573 に答える
1

この質問には多くの意見があることがわかりましたので、参考までに、私が思いついた解決策を投稿しています。

最終的に、Web と CLI の両方にアクセスするためのソリューションを思いついたので、インストールごとに Subversion に影響を与えることなく、使用する環境を決定できます。

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

于 2010-10-20T08:15:42.440 に答える
0

おそらく、タスクでこれに似たことができます:

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' など)。

于 2010-03-30T18:04:02.903 に答える