CloudCastle Cli API

Prompt
in package

FinalYes

Интерактивные запросы к пользователю: свободный ответ, подтверждение и выбор из списка.

Ввод читается из переданного потока, что позволяет тестировать интерактив без реального терминала.

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
throws
InvalidArgumentException

если число попыток не положительно

ValidationFailedException

если ответ не прошёл проверку

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
throws
InvalidArgumentException

если выбран несуществующий вариант

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
throws
InvalidArgumentException

если указан несуществующий вариант

Return values
array<int, string>

выбранные варианты в порядке ввода

secret()

Запросить скрытый ввод (пароль): в терминале эхо отключается.

public secret(string $question) : string

Вне терминала (например, в тестах с потоком в памяти) читает как обычный ввод — управление эхом применяется только к настоящему TTY.

Parameters
$question : string

текст вопроса

Return values
string

введённое значение

On this page

Search results