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

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

Метод execute класса Command содержит основную логику выполнения консольной команды. Он вызывается автоматически при запуске команды через терминал. Первым параметром передаётся объект InputInterface для чтения аргументов и опций, вторым - объект OutputInterface для вывода результата. Метод должен вернуть код завершения команды: Command::SUCCESS или Command::FAILURE.

Синтаксис

protected function execute(InputInterface $input, OutputInterface $output): int

Пример

Давайте создадим команду, которая выводит приветствие в терминал:

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

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

php bin/console app:hello

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

hello

Пример

Давайте выведем значение аргумента name, полученного из командной строки:

<?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($name); return Command::SUCCESS; } } ?>

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

php bin/console app:user abcde

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

abcde

Пример

Давайте вернём код ошибки Command::FAILURE, если аргумент пустой:

<?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::OPTIONAL, '', ''); } protected function execute(InputInterface $input, OutputInterface $output): int { $name = $input->getArgument('name'); if ($name === '') { $output->writeln('user not found'); return Command::FAILURE; } $output->writeln($name); return Command::SUCCESS; } } ?>

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

php bin/console app:user

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

user not found

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

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