public function ask($question, $isHidden = false, $default = '', $displayDefault = true)
{
if ($displayDefault && !empty($default)) {
$defaultText = $default;
if (strlen($defaultText) > 30) {
$defaultText = substr($default, 0, 30) . '...';
}
$question .= " [{$defaultText}]";
}
Output::write("{$question} ");
return $isHidden ? $this->askHidden() : trim(fgets(STDIN)) ?: $default;
}