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

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

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

Note
По умолчанию помощник процесса использует вывод ошибок (stderr
) в качестве
вывода по умолчанию. Это поведение можно изменить, передав экземпляр
StreamOutput в метод
run().
Аргументы
Существует два способа использовать помощник процесса:
Массив аргументов:
1 2
// ... $helper->run($output, ['figlet', 'Symfony']);
Note
При запуске помощника с массивом аргументов, имейте в виду, что они будут автоматически экранированы.
Передача экземпляра Process:
1 2 3 4 5 6
use Symfony\Component\Process\Process; // ... $process = new Process(['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) {
// ... do something with the stderr output
} else {
// ... сделать что-то с stdout
}
});