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

Метод setOption класса Input

Метод setOption класса Input позволяет задать значение опции команды по её имени. Первым параметром передаётся имя опции, вторым - её значение. Метод удобен, когда нужно изменить поведение команды во время её выполнения или передать значение опции программно.

Синтаксис

$input->setOption(string $name, mixed $value)

Пример

Давайте создадим команду и установим значение опции format через метод setOption:

<?php namespace App\Command; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; #[AsCommand(name: 'app:article')] class ArticleCommand extends Command { protected function configure(): void { $this ->addOption('format', null, InputOption::VALUE_REQUIRED, 'Output format') ->addOption('limit', null, InputOption::VALUE_REQUIRED, 'Item limit'); } protected function execute(InputInterface $input, OutputInterface $output): int { $input->setOption('format', 'json'); $input->setOption('limit', 10); $output->writeln('Format: ' . $input->getOption('format')); $output->writeln('Limit: ' . $input->getOption('limit')); return Command::SUCCESS; } } ?>

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

Format: json Limit: 10

Пример

Давайте установим опцию user со значением 'abcde' и выведем результат:

<?php namespace App\Command; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; #[AsCommand(name: 'app:user')] class ArticleCommand extends Command { protected function configure(): void { $this->addOption('user', null, InputOption::VALUE_REQUIRED, 'User name'); } protected function execute(InputInterface $input, OutputInterface $output): int { $input->setOption('user', 'abcde'); $output->writeln('User: ' . $input->getOption('user')); return Command::SUCCESS; } } ?>

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

User: abcde

Пример

Давайте установим опцию enabled с булевым значением true:

<?php namespace App\Command; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; #[AsCommand(name: 'app:status')] class ArticleCommand extends Command { protected function configure(): void { $this->addOption('enabled', null, InputOption::VALUE_NONE, 'Enable status'); } protected function execute(InputInterface $input, OutputInterface $output): int { $input->setOption('enabled', true); $status = $input->getOption('enabled') ? 'on' : 'off'; $output->writeln('Status: ' . $status); return Command::SUCCESS; } } ?>

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

Status: on

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

  • класс Input,
    который представляет входные данные команды
  • метод getOption,
    который возвращает значение опции
  • метод hasOption,
    который проверяет наличие опции
  • метод setArgument,
    который устанавливает значение аргумента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить