Prompt
in package
Интерактивные запросы к пользователю: свободный ответ, подтверждение и выбор из списка.
Ввод читается из переданного потока, что позволяет тестировать интерактив без реального терминала.
Table of Contents
Methods
- __construct() : mixed
- ask() : string
- Задать вопрос и вернуть введённую строку.
- askValid() : string
- Запрашивать ответ, пока он не пройдёт проверку, либо исчерпаются попытки.
- choice() : string
- Предложить выбор из пронумерованного списка вариантов.
- confirm() : bool
- Задать вопрос «да/нет».
- multiChoice() : array<int, string>
- Предложить выбрать несколько вариантов (номера через запятую).
- secret() : string
- Запросить скрытый ввод (пароль): в терминале эхо отключается.
Methods
__construct()
public
__construct(resource $input, Writer $output) : mixed
Parameters
- $input : resource
-
поток ввода (например,
STDIN) - $output : Writer
-
приёмник вывода вопросов
ask()
Задать вопрос и вернуть введённую строку.
public
ask(string $question[, string|null $default = null ]) : string
Parameters
- $question : string
-
текст вопроса
- $default : string|null = null
-
значение при пустом ответе
Return values
string —ответ пользователя или значение по умолчанию
askValid()
Запрашивать ответ, пока он не пройдёт проверку, либо исчерпаются попытки.
public
askValid(string $question, callable(string): bool $validator[, string $error = 'Некорректный ввод' ][, int $attempts = 3 ]) : string
Parameters
- $question : string
-
текст вопроса
- $validator : callable(string): bool
-
проверка ответа
- $error : string = 'Некорректный ввод'
-
сообщение при неверном ответе
- $attempts : int = 3
-
число попыток (> 0)
Tags
Return values
string —корректный ответ
choice()
Предложить выбор из пронумерованного списка вариантов.
public
choice(string $question, array<int, string> $choices[, int|null $default = null ]) : string
Parameters
- $question : string
-
текст вопроса
- $choices : array<int, string>
-
варианты (индекс — номер выбора)
- $default : int|null = null
-
индекс варианта по умолчанию
Tags
Return values
string —выбранный вариант
confirm()
Задать вопрос «да/нет».
public
confirm(string $question[, bool $default = false ]) : bool
Parameters
- $question : string
-
текст вопроса
- $default : bool = false
-
ответ при пустом вводе
Return values
bool —true, если пользователь подтвердил
multiChoice()
Предложить выбрать несколько вариантов (номера через запятую).
public
multiChoice(string $question, array<int, string> $choices) : array<int, string>
Parameters
- $question : string
-
текст вопроса
- $choices : array<int, string>
-
варианты
Tags
Return values
array<int, string> —выбранные варианты в порядке ввода
secret()
Запросить скрытый ввод (пароль): в терминале эхо отключается.
public
secret(string $question) : string
Вне терминала (например, в тестах с потоком в памяти) читает как обычный ввод — управление эхом применяется только к настоящему TTY.
Parameters
- $question : string
-
текст вопроса
Return values
string —введённое значение