Помічник Process

Дата оновлення перекладу 2022-11-11

Помічник 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 :(');

Зворотний виклик користувацького процесу може бути передано в якості четвертого аргументу. Зверніться до Компонента Процес, щоб побачити документацію зворотного виклику:

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
    }
});