Метод askHidden
Метод askHidden класса SymfonyStyle выводит вопрос в консоль
и принимает ответ от пользователя, не отображая вводимые символы.
Это удобно для ввода паролей и другой чувствительной информации.
Первым параметром передаётся текст вопроса, вторым - значение по умолчанию.
Метод возвращает строку с ответом пользователя.
Синтаксис
public function askHidden(string $question, ?string $default = null): mixed
Пример
Давайте запросим у пользователя пароль, скрыв вводимые символы:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
use SymfonyComponentConsoleStyleSymfonyStyle;
class UserCommand extends Command
{
protected static $defaultName = 'app:user';
protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
$password = $io->askHidden('Enter your password');
$io->writeln('Password length: ' . strlen($password));
return Command::SUCCESS;
}
}
?>
Результат выполнения команды:
Enter your password:
Password length: 5
Пример
Давайте передадим значение по умолчанию вторым параметром:
<?php
namespace AppCommand;
use SymfonyComponentConsoleCommandCommand;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleOutputOutputInterface;
use SymfonyComponentConsoleStyleSymfonyStyle;
class UserCommand extends Command
{
protected static $defaultName = 'app:user';
protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
$secret = $io->askHidden('Enter secret key', 'abcde');
$io->writeln('Secret: ' . $secret);
return Command::SUCCESS;
}
}
?>
Если пользователь нажмёт Enter, не вводя ничего, результатом будет значение по умолчанию:
Enter secret key:
Secret: abcde
Смотрите также
-
метод
ask,
который задаёт вопрос пользователю с видимым вводом -
метод
confirm,
который запрашивает подтверждение действия -
метод
choice,
который предлагает выбрать один из вариантов -
класс
SymfonyStyle,
который предоставляет методы для стилизации вывода