Cli Class
Interact with the command line by accepting input options, parameters and output text.
beep($num = 1)
The beep method fires a system beep on the computer running the command.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$num |
1 |
Number of beeps. |
|
Returns |
void |
Example |
Cli::beep(25);
|
color($text, $foreground, $background = null, $format = null)
The color method changes the color of a piece of text.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$text |
Required |
String to be colored. |
$foreground |
Required |
Foreground color of the string. |
$background |
null |
Background color of the string. |
$format |
null |
Other formatting to apply. Currently only the format 'underline' is support. |
|
Returns |
string |
Example |
if (true === false)
{
$message = Cli::color('Error: The universe is broken.', 'red');
}
else
{
$message = Cli::color('All is well with the world.', 'green');
}
Cli::write($message);
|
Supported color codes:
Color |
Sample |
Color |
Sample |
black |
|
dark_gray |
|
red |
|
light_red |
|
green |
|
light_green |
|
brown, yellow |
|
light_yellow |
|
blue |
|
light_blue |
|
purple |
|
light_purple |
|
cyan |
|
light_cyan |
|
light_gray |
|
white |
|
The colors in the first column are also available as background colors. Colors may depend on the terminal and terminal theme used.
Note that if you prefer UK English spelling, you can substitute "grey" for "gray".
error($text)
The error method will write a line of text to the command line as an error (similar to write but uses STDERR instead of STDOUT).
Static |
Yes |
Parameters |
Param |
Default |
Description |
$text |
empty string |
Text to output to STDERR for the output. |
|
Returns |
void |
Example |
Cli::error('Failure: You hit the wrong key with your chubby hands, try using a stick to poke the keyboard.');
|
prompt($question = null, $options = array())
The prompt method prompts the user for input.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$question |
null |
Ask the user a question and wait for input. |
$options |
array() |
An array of options for the user to select from. |
|
Returns |
string |
Example |
// Waits for any key press
Cli::prompt();
// Takes any input
$color = Cli::prompt('What is your favorite color?');
// Takes any input, but offers default
$color = Cli::prompt('What is your favorite color?', 'white');
// Will only accept the options in the array
$ready = Cli::prompt('Are you ready?', array('y','n'));
|
option($name, null)
The option accepts an option from the initial command.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$name |
Required |
Name of the option. |
$default |
null |
A default value in case the option is not provided. |
|
Returns |
string |
Example |
$ php index.php user -v --v -name=John --name=John
|
wait($seconds = 0, $countdown = false)
The wait method will make the cli output wait for a given number of seconds and optionally show a countdown.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$seconds |
0 |
Number of seconds to wait. |
$countdown |
false |
Show the countdown in the output. |
|
Returns |
void |
Example |
Cli::write('Loading...');
Cli::wait(5, true);
|
write($text = '', $foreground = null, $background = null)
The write method will write a line of text to the command line.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$text |
empty string |
Text to output to the command line. |
$foreground |
null |
Foreground color of the string. |
$background |
null |
Background color of the string. |
|
Returns |
void |
Example |
Cli::write('Hello World!');
|
stdout($resource = null)
Changes or retrieves the current stdout stream. This is STDOUT by default.
Note the public property $nocolor
can be set to true to force all output
to plaintext.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$resource |
null |
Any writable filehandle, or null to retrieve the current filehandle. |
|
Returns |
The previous value of the filehandle (or current value if you are not changing it) |
Example |
$buffer = fopen('php://temp', 'w+');
$stdout = Cli::stdout($buffer);
Cli::write("Hello World!");
Cli::error("Where's my text? :(");
Cli::stdout($stdout);
Cli::write("There it is!");
rewind($buffer);
file_put_contents('out.log', stream_get_contents($buffer));
// $ cat out.log
// Hello World!
|
stderr($resource = null)
Changes or retrieves the current stderr stream. This is STDERR by default.
Note the public property $nocolor
can be set to true to force all output
to plaintext.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$resource |
null |
Any writable filehandle, or null to retrieve the current filehandle. |
|
Returns |
The previous value of the filehandle (or current value if you are not changing it) |
Example |
$errors = fopen('php://temp', 'w+');
$stderr = Cli::stderr($errors);
Cli::write("Hello World!");
Cli::error("Where's my text? :(");
Cli::stderr($stderr);
Cli::write("There it is!");
rewind($errors);
file_put_contents('out.log', stream_get_contents($errors));
// $ cat out.log
// Where's my text? :(
|