Browse Source

Added default value support for \yii\console\Command::prompt

tags/2.0.0-beta
Alexander Makarov 13 years ago
parent
commit
f62a68f322
  1. 33
      framework/console/Command.php

33
framework/console/Command.php

@ -304,19 +304,36 @@ abstract class Command extends \yii\base\Component
* Reads input via the readline PHP extension if that's available, or fgets() if readline is not installed.
*
* @param string $message to echo out before waiting for user input
* @param string $default the default string to be returned when user does not write anything. Defaults to null.
* @return mixed line read as a string, or false if input has been closed
*/
public function prompt($message)
public function prompt($message, $default = null)
{
if($default !== null) {
$message .= " [$default] ";
}
else {
$message .= ' ';
}
if(extension_loaded('readline'))
{
$input = readline($message.' ');
readline_add_history($input);
return $input;
} else
{
echo $message.' ';
return trim(fgets(STDIN));
$input = readline($message);
if($input) {
readline_add_history($input);
}
} else {
echo $message;
$input = fgets(STDIN);
if($input === false) {
$input = trim($input);
}
}
if($input === false) {
return false;
}
else {
return empty($input) ? $default : $input;
}
}

Loading…
Cancel
Save