РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1265 of 1361 menu

Метод addArgument

Метод addArgument класса Command добавляет позиционный аргумент в консольную команду. Первым параметром передаётся имя аргумента. Вторым параметром передаётся режим аргумента: InputArgument::REQUIRED, InputArgument::OPTIONAL или InputArgument::IS_ARRAY. Третьим параметром передаётся описание аргумента, четвёртым - значение по умолчанию. Метод возвращает объект команды, что позволяет выстраивать цепочку вызовов.

Синтаксис

$command->addArgument(string $name, int $mode = null, string $description = '', mixed $default = null)

Пример

Давайте создадим команду с обязательным аргументом name и выведем его значение:

<?php namespace AppCommand; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputArgument; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; class ArticleCommand extends Command { protected static $defaultName = 'app:article'; protected function configure(): void { $this->addArgument('name', InputArgument::REQUIRED, 'The name of the article'); } protected function execute(InputInterface $input, OutputInterface $output): int { $name = $input->getArgument('name'); $output->writeln($name); return Command::SUCCESS; } } ?>

Результат выполнения команды:

php bin/console app:article hello
hello

Пример

Давайте добавим необязательный аргумент text со значением по умолчанию:

<?php namespace AppCommand; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputArgument; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; class ArticleCommand extends Command { protected static $defaultName = 'app:article'; protected function configure(): void { $this->addArgument('text', InputArgument::OPTIONAL, 'The text of the article', 'abcde'); } protected function execute(InputInterface $input, OutputInterface $output): int { $text = $input->getArgument('text'); $output->writeln($text); return Command::SUCCESS; } } ?>

Результат выполнения команды без аргумента:

php bin/console app:article
abcde

Результат выполнения команды с аргументом:

php bin/console app:article user
user

Пример

Давайте добавим аргумент-массив tags с помощью режима InputArgument::IS_ARRAY:

<?php namespace AppCommand; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputArgument; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; class ArticleCommand extends Command { protected static $defaultName = 'app:article'; protected function configure(): void { $this->addArgument('tags', InputArgument::IS_ARRAY, 'The tags of the article'); } protected function execute(InputInterface $input, OutputInterface $output): int { $tags = $input->getArgument('tags'); $output->writeln(implode(', ', $tags)); return Command::SUCCESS; } } ?>

Результат выполнения команды:

php bin/console app:article php symfony console
php, symfony, console

Смотрите также

  • класс Command,
    который представляет консольную команду
  • метод addOption,
    который добавляет опцию в команду
  • метод configure,
    который настраивает аргументы и опции команды
  • метод execute,
    который содержит логику выполнения команды
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить