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

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

Метод run класса Command запускает консольную команду и управляет всем её жизненным циклом. Первым параметром передаётся объект InputInterface, вторым - объект OutputInterface. Метод последовательно вызывает initialize, interact и execute, возвращая код завершения команды.

Синтаксис

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

Пример

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

<?php namespace AppCommand; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; class ArticleCommand extends Command { protected static $defaultName = 'app:article'; protected function execute(InputInterface $input, OutputInterface $output): int { $output->writeln('hello'); return Command::SUCCESS; } } ?>

Запустим команду через метод run:

<?php namespace AppCommand; use SymfonyComponentConsoleApplication; use SymfonyComponentConsoleInputArrayInput; use SymfonyComponentConsoleOutputBufferedOutput; $application = new Application(); $command = new ArticleCommand(); $command->setApplication($application); $input = new ArrayInput([]); $output = new BufferedOutput(); $res = $command->run($input, $output); echo $output->fetch(); ?>

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

hello

Пример

Давайте передадим аргумент в команду и получим код завершения:

<?php namespace AppCommand; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputArgument; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; class UserCommand extends Command { protected static $defaultName = 'app:user'; protected function configure(): void { $this->addArgument('name', InputArgument::REQUIRED); } protected function execute(InputInterface $input, OutputInterface $output): int { $name = $input->getArgument('name'); $output->writeln('user ' . $name); return Command::SUCCESS; } } ?>

Запустим команду с аргументом 'abcde':

<?php namespace AppCommand; use SymfonyComponentConsoleApplication; use SymfonyComponentConsoleInputArrayInput; use SymfonyComponentConsoleOutputBufferedOutput; $application = new Application(); $command = new UserCommand(); $command->setApplication($application); $input = new ArrayInput(['name' => 'abcde']); $output = new BufferedOutput(); $res = $command->run($input, $output); echo $output->fetch(); echo $res; ?>

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

user abcde 0

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

  • класс Command,
    который представляет консольную команду
  • метод execute,
    который содержит логику выполнения команды
  • метод configure,
    который настраивает аргументы и опции команды
  • метод interact,
    который взаимодействует с пользователем
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить