РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1053 of 1361 menu

Метод mustRun класса Process

Метод mustRun класса Process запускает внешний процесс и ожидает его завершения. В отличие от метода run, если команда вернёт ненулевой код выхода, метод mustRun выбросит исключение ProcessFailedException. Это удобно, когда нужно быть уверенным, что команда выполнилась успешно.

Синтаксис

$process->mustRun(?callable $callback = null): void

Пример

Давайте запустим команду 'echo hello' и получим её вывод:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Process\Process; class ProcessController extends AbstractController { public function index(): Response { $process = new Process(['echo', 'hello']); $process->mustRun(); return new Response($process->getOutput()); } } ?>

Результат выполнения кода:

hello

Пример

Давайте запустим команду, которая завершится с ошибкой, и перехватим исключение:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Process\Exception\ProcessFailedException; use Symfony\Component\Process\Process; class ProcessController extends AbstractController { public function index(): Response { $process = new Process(['ls', '/nonexistent']); try { $process->mustRun(); } catch (ProcessFailedException $e) { return new Response($e->getMessage()); } return new Response($process->getOutput()); } } ?>

Результат выполнения кода:

The command "ls /nonexistent" failed.

Пример

Давайте передадим callback для обработки вывода процесса:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Process\Process; class ProcessController extends AbstractController { public function index(): Response { $process = new Process(['echo', 'abcde']); $output = ''; $process->mustRun(function ($type, $buffer) use (&$output) { $output .= $buffer; }); return new Response($output); } } ?>

Результат выполнения кода:

abcde

Смотрите также

  • метод run,
    который запускает процесс и ожидает его завершения
  • метод start,
    который запускает процесс асинхронно
  • метод getOutput,
    который возвращает стандартный вывод процесса
  • метод getErrorOutput,
    который возвращает вывод ошибок процесса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить