The terminal library adds support for color to the util.cmd.Console
class.
There are five predefined styles:
use util\cmd\Console;
Console::writeLine('This is <primary>primary</>!');
Console::writeLine('This is <success>success</>!');
Console::writeLine('This is <info>info</>!');
Console::writeLine('This is <warning>warning</>!');
Console::writeLine('This is <danger>danger</>!');
For direct color control, the colors can be chosen directly by supplying their names. Foreground and background colors are separated by the @
sign:
use util\cmd\Console;
Console::writeLine('<red>An error occured</>');
Console::writeLine('<white@green>OK: 100 Tests succeeded</>');
The colors' names are black, dark-red, dark-green, dark-yellow, dark-blue, dark-magenta, dark-cyan, gray, dark-gray, red, green, yellow, blue, magenta, cyan and white.
There are three more attributes. Not all terminals support these, though!
use util\cmd\Console;
Console::writeLine('<underline>http://localhost</>');
Console::writeLine('<bold>Watch out!</>');
Console::writeLine('<italic>- The XP Framework group</>');
// Can be combined, too
Console::writeLine('<dark-blue,underline>http://localhost</>');
The util.cmd.term.Terminal
class allows clearing the screen, positioning the cursor and writing text there.
use util\cmd\term\Terminal;
$message= 'Hello from the middle of the screen';
// Center text in third line
$dim= Terminal::size();
$x= ($dim[0] - strlen($message)) / 2;
$y= 3;
Terminal::clear();
Terminal::write($x, $y, $message);
For the more advanced example seen above in the screenshot, have a look at this code.