Помощник Process¶
Помощник Process отображает процессы во время их выполнения и сообщает полезную информацию о статусе процесса.
Чтобы отобразить детали процесса, используйте ProcessHelper
и запустите вашу команду с детализацией. Например, выполнение следующего кода
с очень высокой детализцией (например, -vv):
1 2 3 4 5 6 | use Symfony\Component\Process\Process;
$helper = $this->getHelper('process');
$process = new Process(array('figlet', 'Symfony'));
$helper->run($output, $process);
|
Приведёт к такому выводу:

Это приведёт к более детализированному выводу с детализацией отладки (например, -vvv
):

В случае неудачи процесса, отладка будет проще:

Аргументы¶
Существует три способа использовать помощник процесса:
Использование командной строки:
1 2
// ... $helper->run($output, 'figlet Symfony');
Массив аргументов:
1 2
// ... $helper->run($output, array('figlet', 'Symfony'));
Note
При запуске помощника с массивом аргументов, имейте в виду, что они будут автоматически экранированы.
Передача экземпляра
Process
:1 2 3 4 5 6
use Symfony\Component\Process\Process; // ... $process = new Process(array('figlet', 'Symfony')); $helper->run($output, $process);
Настроенное отображение¶
Вы можете отобразить настроенное сообщение об ошибке используя третий аргумент
метода run()
:
1 | $helper->run($output, $process, 'The process failed :(');
|
Обратный вызов пользовательского процесса может быть передан в качестве четвёртого аргумента. Обратитесь к Компоненту Process, чтобы увидеть документацию обратного вызова:
1 2 3 4 5 6 7 8 9 | use Symfony\Component\Process\Process;
$helper->run($output, $process, 'The process failed :(', function ($type, $data) {
if (Process::ERR === $type) {
// ... сделать что-то с выводом stderr
} else {
// ... сделать что-то с stdout
}
});
|
Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.