Метод setArgument класса Input
Метод setArgument класса Input позволяет задать значение аргумента консольной команды во время её выполнения. Первым параметром передаётся имя аргумента, вторым - новое значение. Метод удобен, когда нужно программно переопределить аргументы перед вызовом логики команды.
Синтаксис
public function setArgument(string $name, mixed $value): void
Пример
Давайте создадим команду и установим значение аргумента name с помощью метода setArgument:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
class ArticleCommand extends Command
{
protected static $defaultName = 'app:article';
protected function configure(): void
{
$this->addArgument('name');
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$input->setArgument('name', 'abcde');
$output->writeln($input->getArgument('name'));
return Command::SUCCESS;
}
}
?>
Результат выполнения команды:
"abcde"
Пример
Давайте установим значение для массива аргументов, используя метод setArgument с типом array:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
class ArticleCommand extends Command
{
protected static $defaultName = 'app:article';
protected function configure(): void
{
$this->addArgument('names', InputArgument::IS_ARRAY);
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$input->setArgument('names', ['abcde', 'article', 'user']);
$output->writeln(implode(', ', $input->getArgument('names')));
return Command::SUCCESS;
}
}
?>
Результат выполнения команды:
"abcde, article, user"
Смотрите также
-
класс
Input,
который представляет входные данные команды -
метод
getArgument,
который возвращает значение аргумента -
метод
setOption,
который устанавливает значение опции -
метод
hasArgument,
который проверяет наличие аргумента