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

Метод addOption

Метод addOption класса Command добавляет опцию в консольную команду. Первым параметром передаётся имя опции, вторым - короткое имя (сокращение), третьим - режим ввода, четвёртым - описание, пятым - значение по умолчанию. Опции отличаются от аргументов тем, что передаются с префиксом -- или - и могут быть необязательными.

Синтаксис

addOption(string $name, string|array|null $shortcut = null, int $mode = null, string $description = '', mixed $default = null, array|\Closure $suggestedValues = [])

Пример

Давайте создадим команду с опцией --name:

<?php namespace App\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; class ArticleCommand extends Command { protected function configure(): void { $this ->setName('app:article') ->setDescription('Article command') ->addOption( 'name', null, InputOption::VALUE_REQUIRED, 'User name', 'hello' ); } protected function execute(InputInterface $input, OutputInterface $output): int { $name = $input->getOption('name'); $output->writeln($name); return Command::SUCCESS; } } ?>

Результат выполнения команды php bin/console app:article --name=abcde:

abcde

Пример

Давайте добавим опцию с коротким именем -u и значением по умолчанию:

<?php namespace App\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; class ArticleCommand extends Command { protected function configure(): void { $this ->setName('app:article') ->setDescription('Article command') ->addOption( 'user', 'u', InputOption::VALUE_REQUIRED, 'User name', 'hello' ); } protected function execute(InputInterface $input, OutputInterface $output): int { $user = $input->getOption('user'); $output->writeln($user); return Command::SUCCESS; } } ?>

Результат выполнения команды php bin/console app:article -u abcde:

abcde

Результат выполнения команды php bin/console app:article без указания опции:

hello

Пример

Давайте добавим опцию-флаг без значения:

<?php namespace App\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; class ArticleCommand extends Command { protected function configure(): void { $this ->setName('app:article') ->setDescription('Article command') ->addOption( 'force', 'f', InputOption::VALUE_NONE, 'Force execution' ); } protected function execute(InputInterface $input, OutputInterface $output): int { if ($input->getOption('force')) { $output->writeln('forced'); } else { $output->writeln('normal'); } return Command::SUCCESS; } } ?>

Результат выполнения команды php bin/console app:article -f:

forced

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

normal

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

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