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

Метод isInteractive класса Input

Метод isInteractive класса Input возвращает булево значение, указывающее, является ли текущий ввод интерактивным. Если метод возвращает true, команда может запрашивать у пользователя данные через вопросы. Если false, команда выполняется без взаимодействия с пользователем, например, в автоматическом режиме или при передаче флага --no-interaction. Метод не принимает параметров.

Синтаксис

public function isInteractive(): bool

Пример

Давайте создадим команду, которая проверяет интерактивность ввода и выводит соответствующее сообщение:

<?php namespace AppCommand; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; class CheckInteractiveCommand extends Command { protected static $defaultName = 'app:check-interactive'; protected function execute(InputInterface $input, OutputInterface $output): int { $res = $input->isInteractive(); if ($res) { $output->writeln('Interactive mode is enabled'); } else { $output->writeln('Interactive mode is disabled'); } return Command::SUCCESS; } } ?>

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

php bin/console app:check-interactive

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

"Interactive mode is enabled"

Пример

Давайте запустим ту же команду с флагом --no-interaction, чтобы отключить интерактивность:

php bin/console app:check-interactive --no-interaction

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

"Interactive mode is disabled"

Пример

Давайте используем метод isInteractive для условного запроса данных у пользователя:

<?php namespace AppCommand; use SymfonyComponentConsoleCommandCommand; use SymfonyComponentConsoleInputInputInterface; use SymfonyComponentConsoleOutputOutputInterface; use SymfonyComponentConsoleQuestionQuestion; class AskNameCommand extends Command { protected static $defaultName = 'app:ask-name'; protected function execute(InputInterface $input, OutputInterface $output): int { $name = 'guest'; if ($input->isInteractive()) { $question = new Question('Enter your name: ', 'guest'); $name = $this->getHelper('question')->ask($input, $output, $question); } $output->writeln('Hello, ' . $name); return Command::SUCCESS; } } ?>

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

php bin/console app:ask-name

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

"Hello, guest"

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

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