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

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

Метод run класса Application запускает консольное приложение. Он принимает объект Input (по умолчанию ArgvInput) и объект Output (по умолчанию ConsoleOutput). Метод разбирает аргументы командной строки, находит нужную команду, выполняет её и возвращает целочисленный код завершения. Обычно этот метод вызывается в исполняемом файле bin/console.

Синтаксис

public function run(InputInterface $input = null, OutputInterface $output = null): int

Пример

Давайте создадим простое консольное приложение с одной командой и запустим его через метод run:

<?php use SymfonyComponentConsoleApplication; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; require __DIR__ . '/../vendor/autoload.php'; $app = new Application(); $app->add(new class extends Command { protected static $defaultName = 'user:greet'; protected function execute(InputInterface $input, OutputInterface $output): int { $output->writeln('hello'); return Command::SUCCESS; } }); $exitCode = $app->run(); exit($exitCode); ?>

Результат выполнения команды php bin/console.php user:greet:

hello

Пример

Давайте передадим в метод run собственные объекты ввода и вывода, чтобы перехватить результат:

<?php use SymfonyComponentConsoleApplication; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputArgvInput; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputBufferedOutput; use SymfonyComponentConsoleOutputOutputInterface; require __DIR__ . '/../vendor/autoload.php'; $app = new Application(); $app->setAutoExit(false); $app->add(new class extends Command { protected static $defaultName = 'article:show'; protected function execute(InputInterface $input, OutputInterface $output): int { $output->writeln('article'); return Command::SUCCESS; } }); $input = new ArgvInput(['console', 'article:show']); $output = new BufferedOutput(); $exitCode = $app->run($input, $output); echo $exitCode . ': ' . $output->fetch(); ?>

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

"0: article"

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

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