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

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

Метод run класса Process запускает внешнюю команду и дожидается её завершения. Он возвращает объект Process, что позволяет сразу прочитать вывод команды. Если команда завершилась с ошибкой, метод бросает исключение ProcessFailedException.

Первым параметром передаётся массив аргументов команды. Вторым необязательным параметром можно передать callback, который будет вызван для каждой строки вывода. Третий параметр задаёт переменные окружения.

Синтаксис

$process->run(callable $callback = null, array $env = [])

Пример

Давайте запустим команду 'ls' и выведем её результат:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentProcessProcess; class ProcessController extends AbstractController { public function index(): Response { $process = new Process(['ls']); $process->run(); return new Response($process->getOutput()); } } ?>

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

"article user hello"

Пример

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

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentProcessProcess; class ProcessController extends AbstractController { public function index(): Response { $process = new Process(['echo', 'abcde']); $process->run(function ($type, $buffer) { echo $buffer; }); return new Response($process->getOutput()); } } ?>

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

"abcde"

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

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