Метод getOptions класса Input
Метод getOptions класса Input возвращает
массив всех опций, которые были переданы команде
при запуске. Метод не принимает параметров и
возвращает ассоциативный массив, где ключами
являются имена опций, а значениями - их значения.
Если опция не была передана, в массиве будет
значение по умолчанию или null.
Синтаксис
public function getOptions(): array
Пример
Давайте получим все опции, переданные команде:
<?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 static $defaultName = 'app:article';
protected function configure(): void
{
$this
->addOption('name', null, InputOption::VALUE_REQUIRED)
->addOption('count', null, InputOption::VALUE_OPTIONAL, '', 1)
->addOption('active', null, InputOption::VALUE_NONE);
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$res = $input->getOptions();
$output->writeln(json_encode($res));
return Command::SUCCESS;
}
}
?>
Результат выполнения команды php bin/console app:article --name=abcde --active:
{"name":"abcde","count":1,"active":true}
Пример
Давайте проверим, какие значения вернутся, если опции не переданы:
<?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 static $defaultName = 'app:article';
protected function configure(): void
{
$this
->addOption('name', null, InputOption::VALUE_REQUIRED)
->addOption('count', null, InputOption::VALUE_OPTIONAL, '', 1)
->addOption('active', null, InputOption::VALUE_NONE);
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$res = $input->getOptions();
$output->writeln(json_encode($res));
return Command::SUCCESS;
}
}
?>
Результат выполнения команды php bin/console app:article:
{"name":null,"count":1,"active":false}
Как видно из результата, опция name без значения
по умолчанию вернула null, опция count
вернула значение по умолчанию 1, а флаг
active - false.
Смотрите также
-
класс
Input,
который представляет входные данные команды -
метод
getOption,
который возвращает значение конкретной опции -
метод
getArguments,
который возвращает все аргументы команды -
метод
hasOption,
который проверяет наличие опции