Метод getOption класса Input
Метод getOption класса Input возвращает значение опции,
переданной в консольную команду. Первым параметром передаётся
имя опции. Если опция не была передана, метод возвращает
значение по умолчанию, заданное при регистрации опции.
Синтаксис
public function getOption(string $name): mixed
Пример
Давайте создадим команду с опцией format и выведем её значение:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
class ArticleCommand extends Command
{
protected static $defaultName = 'app:article';
protected function configure(): void
{
$this
->addOption('format', null, InputOption::VALUE_REQUIRED, 'Output format', 'text');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$format = $input->getOption('format');
$output->writeln('Format: ' . $format);
return Command::SUCCESS;
}
}
?>
Результат выполнения команды с опцией:
php bin/console app:article --format=json
Format: json
Пример
Давайте проверим работу значения по умолчанию, когда опция не передана:
php bin/console app:article
Результат выполнения кода:
Format: text
Пример
Давайте обработаем опцию типа VALUE_NONE, которая возвращает булево значение:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleInputInputOption;
use SymfonyComponentConsoleOutputOutputInterface;
class ArticleCommand extends Command
{
protected static $defaultName = 'app:article';
protected function configure(): void
{
$this->addOption('verbose', null, InputOption::VALUE_NONE, 'Verbose output');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$verbose = $input->getOption('verbose');
if ($verbose) {
$output->writeln('Verbose mode enabled');
} else {
$output->writeln('Verbose mode disabled');
}
return Command::SUCCESS;
}
}
?>
Результат выполнения команды с флагом:
php bin/console app:article --verbose
Verbose mode enabled
Смотрите также
-
класс
Input,
который представляет входные данные команды -
метод
hasOption,
который проверяет наличие опции -
метод
setOption,
который устанавливает значение опции -
метод
getArgument,
который возвращает значение аргумента