Метод ask
Метод ask класса SymfonyStyle выводит вопрос в консоль и ожидает ввода от пользователя. Первым параметром передаётся текст вопроса. Вторым параметром можно передать значение по умолчанию, которое будет возвращено, если пользователь нажмёт Enter без ввода. Метод возвращает строку с ответом пользователя.
Синтаксис
public function ask(string $question, ?string $default = null): ?string
Пример
Давайте зададим пользователю вопрос и выведем его ответ:
<?php
namespace App\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
class AskCommand extends Command
{
protected static $defaultName = 'app:ask';
protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
$name = $io->ask('What is your name?');
$io->writeln('Hello, ' . $name);
return Command::SUCCESS;
}
}
?>
Результат выполнения команды в консоли:
What is your name?
> abcde
Hello, abcde
Пример
Давайте передадим значение по умолчанию вторым параметром. Если пользователь нажмёт Enter, метод вернёт 'user':
<?php
namespace App\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
class AskCommand extends Command
{
protected static $defaultName = 'app:ask';
protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
$name = $io->ask('What is your name?', 'user');
$io->writeln('Hello, ' . $name);
return Command::SUCCESS;
}
}
?>
Результат выполнения команды в консоли:
What is your name?
>
Hello, user
Смотрите также
-
класс
SymfonyStyle,
который предоставляет методы для вывода в консоль -
метод
askHidden,
который скрывает ввод пользователя -
метод
confirm,
который задаёт вопрос с ответом да или нет -
метод
choice,
который предлагает выбрать вариант из списка