Получить вывод команды Symfony и сохранить ее в файл

Я использую Symfony 2,0.

Я создал команду в Symfony и хочу взять ее вывод и записать в файл.

Все, что я хочу, это взять все, что написано в стандартном выводе (на консоли), и поместить его в переменную. Я имею в виду все, что отражено в команде, исключения, перехваченные в других файлах, вызываемые командой и так далее. Я хочу вывод как на экране, так и в переменной (для записи содержимого переменной в файл). Я сделаю запись в файле в конце execute() метод команды.

Что-то вроде этого:

protected function execute(InputInterface $input, OutputInterface $output)
{
// some logic and calls to services and functions
echo 'The operation was successful.';

$this->writeLogToFile($file, $output???);
}

И в файле я хочу иметь:

[Output from the calls to other services, if any]
The operation was successful.

Не могли бы вы мне помочь?

Я попробовал что-то вроде этого:

   $stream  = $output->getStream();
$content = stream_get_contents($stream, 5);

но команда не заканчивается таким образом. 🙁

5

Решение

Вы можете просто переслать вывод команды, используя стандартные методы оболочки с php app/console your:command > output.log, Или, если это не вариант, вы можете ввести оболочку для OutputInterface это будет записывать в поток, а затем переадресовывать вызовы на упакованный вывод.

8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]