Метод getArgument
Метод getArgument класса Input
возвращает значение аргумента, который был
передан в команду при запуске. Первым параметром
передаётся имя аргумента в виде строки. Если
аргумент не был определён или не передан,
метод выбрасывает исключение
InvalidArgumentException.
Метод часто используется внутри метода
execute команды для получения данных,
введённых пользователем в терминале.
Синтаксис
public function getArgument(string $name): mixed
Параметр name задаёт имя аргумента,
значение которого нужно получить.
Пример
Давайте создадим команду, которая принимает
аргумент name и выводит его в консоль:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputArgument;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
class GreetCommand extends Command
{
protected static $defaultName = 'app:greet';
protected function configure(): void
{
$this->addArgument('name', InputArgument::REQUIRED);
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$name = $input->getArgument('name');
$output->writeln('Hello, ' . $name);
return Command::SUCCESS;
}
}
?>
Запустим команду с аргументом user:
php bin/console app:greet user
Результат выполнения команды:
Hello, user
Пример
Давайте создадим команду с двумя аргументами
name и count и выведем их значения:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputArgument;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
class RepeatCommand extends Command
{
protected static $defaultName = 'app:repeat';
protected function configure(): void
{
$this->addArgument('name', InputArgument::REQUIRED);
$this->addArgument('count', InputArgument::OPTIONAL, '', '1');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$name = $input->getArgument('name');
$count = (int) $input->getArgument('count');
for ($i = 0; $i < $count; $i++) {
$output->writeln($name);
}
return Command::SUCCESS;
}
}
?>
Запустим команду с аргументами user и 3:
php bin/console app:repeat user 3
Результат выполнения команды:
user
user
user
Смотрите также
-
класс
Input,
который предоставляет доступ к аргументам и опциям команды -
метод
getOption,
который возвращает значение опции команды -
метод
hasArgument,
который проверяет наличие аргумента -
метод
getArguments,
который возвращает все аргументы команды