xp-forge / terminal

Terminal control
0 stars 0 forks source link
colors terminal xp-framework

Terminal

Build Status on TravisCI XP Framework Module BSD Licence Supports PHP 7.0+ Latest Stable Version

The terminal library adds support for color to the util.cmd.Console class.

Screenshot

Styles

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</>!');

Colors

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.

Attributes

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</>');

Positioning

The util.cmd.term.Terminal class allows clearing the screen, positioning the cursor and writing text there.

Screenshot

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.