2010-03-30 3 views
3

Symfony 1.4를 기반으로하는 프로젝트가 있고 여러 환경이 있습니다. 각 개발자는 로컬 컴퓨터에 자체 복사본이 설치되어 있으며 자체 환경을 가지고 있습니다.Symfony 1.4 : CLI를위한 프로그램 적으로 환경 설정

나는 index.php에서 환경을 동적으로 설정할 수 있지만 CLI 작업에서는 어떻게해야합니까?

내가 할 수 물론 모든 작업에 --env = myenvironment를 사용하지만, 나는 내가의 index.php에서이 같은 논리를 사용할 수 있도록하는 것을 선호

당신은이 비슷한을 할 수
+0

어떻게 개발자를위한 환경을 결정하는 index.php에? 호스트 이름? GET 매개 변수? 몇 가지 코드를 보여줄 수 있습니까? – richsage

+0

주 config 디렉토리에 environment.cfg 파일이 있는지 찾습니다. 이 파일의 내용은 환경을 문자열로 지정합니다. 장점은이 파일이 SVN에 커밋되지 않아서 각 개발자가 svn의 구성에 영향을 미치지 않고 자신의 구성을 지정할 수 있다는 것입니다. – SlappyTheFish

답변

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'등).

+0

고마워, 그래도 작동 할거야.하지만 할 수있는 글로벌 방법이있어, symfony propel : insert-sql-diff를 입력하면 자동으로 어떤 환경을 사용할 수 있는가? – SlappyTheFish

2

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

관련 문제