2013-07-22 150 views
0

我想設置一個命令讓我明確:高速緩存測試模式,然後做一個數據庫,放置模式,添加方案,在測試模式下添加燈具。Symfony2命令改變環境

class BaseCommand extends \Symfony\Component\Console\Command\Command { 

//put your code here 

protected function configure() 
{ 
    $this 
      ->setName('mycommand:test') 
      ->setDescription('Launch test') 
    ; 

} 

protected function execute(InputInterface $input, OutputInterface $output) 
{ 
    $command_first_migration = $this->getApplication()->find('cache:clear'); 
    $arguments_first_migration = array(
     'command' => 'cache:clean', 
     '--env' => 'test' 
    ); 
    $input_first_migration = new ArrayInput($arguments_first_migration); 
    try { 

     $returnCode = $command_first_migration->run($input_first_migration, $output); 


    } catch (\Doctrine\DBAL\Migrations\MigrationException $ex) { 
     echo "MigrationExcepion !!!! "; 
    } 
} 

}

但我有這樣的結果:

clearing the case for the dev environment with debug true 

如何通過在開發環境的考驗嗎?

謝謝

回答

1

您不能設置--env =測試由於內核和環境已經創建,當你運行PHP應用程序/控制檯mycommand的:測試。

的唯一方法是,當你運行你的命令來指定ENV:

php app/console mycommand:test --env=test 
+0

謝謝。現在,當我使用教義:架構:創建我有這個錯誤:沒有選定的數據庫。 – Sworios

+1

你能爲此打開一個新問題嗎?不要忘記批准我的答案,如果它適合你:) – rpg600

+0

這是正確的答案,非常違反直覺,如果遵循SF2文檔 – np87