Метод start класса Process
Метод start класса Process запускает
внешнюю команду асинхронно и сразу возвращает
управление. В отличие от метода run, он не
дожидается завершения процесса. Параметров метод не
принимает. После запуска процесс можно проверять
через isRunning, а дождаться результата через
wait.
Синтаксис
$process->start();
Пример
Давайте запустим команду 'ls -la' асинхронно:
<?php
use SymfonyComponentProcessProcess;
$process = new Process(['ls', '-la']);
$process->start();
while ($process->isRunning()) {
echo 'running...' . PHP_EOL;
}
echo $process->getOutput();
?>
Пример
Давайте запустим команду 'echo hello' и дождёмся её завершения через wait:
<?php
use SymfonyComponentProcessProcess;
$process = new Process(['echo', 'hello']);
$process->start();
$process->wait();
echo $process->getOutput();
?>
Результат выполнения кода:
hello
Пример
Давайте запустим команду 'echo abcde' и проверим статус процесса:
<?php
use SymfonyComponentProcessProcess;
$process = new Process(['echo', 'abcde']);
$process->start();
var_dump($process->isRunning());
$process->wait();
var_dump($process->isRunning());
?>
Результат выполнения кода:
true
false