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

Класс Input

Класс Input инкапсулирует данные, которые пользователь передал в консольную команду. Через объект этого класса команда получает доступ к аргументам (позиционным параметрам) и опциям (флагам с значениями). Объект Input автоматически внедряется в метод execute контроллера команды.

Синтаксис

use Symfony\Component\Console\Input\InputInterface; public function execute(InputInterface $input, OutputInterface $output): int

Пример

Давайте создадим команду, которая принимает аргумент name и выводит приветствие:

<?php namespace App\Command; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; #[AsCommand(name: 'app:hello')] class HelloCommand extends Command { protected function configure(): void { $this->addArgument('name', InputArgument::REQUIRED, 'User name'); } protected function execute(InputInterface $input, OutputInterface $output): int { $name = $input->getArgument('name'); $output->writeln('Hello, ' . $name); return Command::SUCCESS; } } ?>

Результат выполнения команды php bin/console app:hello user:

Hello, user

Пример

Давайте добавим опцию upper и проверим её наличие через метод hasOption:

<?php namespace App\Command; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; #[AsCommand(name: 'app:hello')] class HelloCommand extends Command { protected function configure(): void { $this->addArgument('name', InputArgument::REQUIRED, 'User name'); $this->addOption('upper', null, InputOption::VALUE_NONE, 'Uppercase text'); } protected function execute(InputInterface $input, OutputInterface $output): int { $name = $input->getArgument('name'); if ($input->hasOption('upper') && $input->getOption('upper')) { $name = strtoupper($name); } $output->writeln('Hello, ' . $name); return Command::SUCCESS; } } ?>

Результат выполнения команды php bin/console app:hello user --upper:

Hello, USER

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

  • метод getArgument,
    который возвращает значение аргумента
  • метод getOption,
    который возвращает значение опции
  • метод hasArgument,
    который проверяет наличие аргумента
  • метод setArgument,
    который устанавливает значение аргумента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить