Помощник Process
Дата обновления перевода 2024-06-24
Помощник 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
):
В случае неудачи процесса, отладка будет проще:
Note
По умолчанию помощник процесса использует вывод ошибок (stderr
) в качестве
вывода по умолчанию. Это поведение можно изменить, передав экземпляр
StreamOutput в метод
run().
Аргументы
Существует три способа использовать помощник процесса:
Использование командной строки:
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 (string $type, string $data): void {
if (Process::ERR === $type) {
// ... сделать что-то с выводом stderr
} else {
// ... сделать что-то с stdout
}
});