2014-10-30 3 views
2

Я пытаюсь написать команду symfony2, которая запускает несколько других команд. Но когда я бегуSymfony2 command run cache: clear -e prod

$this->getApplication()->find('cache:clear')->run(new ArrayInput(array(
    'command' => 'cache:clear', 
    '-e' => 'prod' 
)), $output); 
$output->writeln('Done clearing cache prod!'); 

он игнорирует параметры '-e' => 'прод' дает:

Clearing the cache for the dev environment with debug true 

вместо:

Clearing the cache for the prod environment with debug false 

ответ

0

Попробуйте удалить 'command' => 'cache:clear',, поскольку вы уже запущены на этой Команде, найденной в приложении, поэтому вам не нужно указывать ее снова.

$this->getApplication()->find('cache:clear')->run(new ArrayInput(array(
    '-e' => 'prod' 
)), $output); 
+0

Он выбрасывает: [RuntimeException] Недостаточно аргументов. –

+0

@sepikas_antanas хм, это странно, мне нужно посмотреть на это больше. Я ожидал, что он будет работать так же, как [CommandTester] (http://symfony.com/doc/current/cookbook/console/console_command.html#testing-commands). Альтернативой может быть использование Symfony Process для выполнения команды. –