Метод hasOption класса Input
Метод hasOption класса Input проверяет,
передана ли конкретная опция в консольную команду.
Он принимает первым параметром имя опции и возвращает
true, если опция присутствует во входных данных,
или false, если опция не была указана.
Метод удобно использовать внутри команды для ветвления логики в зависимости от того, какие флаги передал пользователь при запуске.
Синтаксис
public function hasOption(string $name): bool
Пример
Давайте создадим команду с опцией user и проверим,
была ли она передана:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
class ArticleCommand extends Command
{
protected static $defaultName = 'app:article';
protected function configure(): void
{
$this
->addOption('user')
->addOption('text');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
if ($input->hasOption('user')) {
$output->writeln('option user exists');
} else {
$output->writeln('option user missing');
}
return Command::SUCCESS;
}
}
?>
Результат выполнения команды php bin/console app:article --user:
option user exists
Пример
Давайте проверим опцию, которая не была передана:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
class ArticleCommand extends Command
{
protected static $defaultName = 'app:article';
protected function configure(): void
{
$this
->addOption('user')
->addOption('text');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$res = $input->hasOption('text');
var_dump($res);
return Command::SUCCESS;
}
}
?>
Результат выполнения команды php bin/console app:article:
bool(false)
Смотрите также
-
метод
getOption,
который возвращает значение опции -
метод
hasArgument,
который проверяет наличие аргумента -
метод
getArgument,
который возвращает значение аргумента -
класс
Input,
который представляет входные данные команды