lfischer / cli-helper
A small component to help you outputting stuff to the command line interface (CLI)
Requires
- php: >=7.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpro/grumphp-shim: ^1.3
- phpunit/phpunit: ^9.5
- psalm/phar: ^4.7
This package is auto-updated.
Last update: 2025-04-19 22:23:00 UTC
README
A small component to help you output stuff on the command line interface (CLI). I found a lot of information on termsys.demon.co.uk/vtansi.htm. This project adheres to Semantic Versioning.
Usage
Foreground color
The foreground color (= text color) can be changed with the classes ForegroundColor
and FG
(as abbreviation).
You can use the class constants or the static methods to set different colors. There is even a method to use the full
rgb
spectrum :)
use lfischer\cli\ForegroundColor; use lfischer\cli\Color\FG; echo ForegroundColor::BLUE . 'Blue foreground!' . ForegroundColor::RESET . PHP_EOL; echo ForegroundColor::blue('Blue foreground!') . PHP_EOL; echo FG::BLUE . 'Blue foreground!' . FG::NONE . PHP_EOL; echo FG::blue('Blue foreground!') . PHP_EOL; echo FG::rgb(0, 0, 255) . 'Blue foreground!' . FG::RESET . PHP_EOL;
Background color
The same functionality can be used for the background with the classes BackgroundColor
and BG
(as abbreviation):
use lfischer\cli\BackgroundColor; use lfischer\cli\Color\BG; echo BackgroundColor::BLUE . 'Blue foreground!' . BackgroundColor::RESET . PHP_EOL; echo BackgroundColor::blue('Blue foreground!') . PHP_EOL; echo BG::BLUE . 'Blue foreground!' . BG::NONE . PHP_EOL; echo BG::blue('Blue foreground!') . PHP_EOL; echo BG::rgb(0, 0, 255) . 'Blue foreground!' . BG::RESET . PHP_EOL;
Output styling
You can also define the style of the output with the Style
class.
use lfischer\cli\Style; echo Style::bold('Bold') . PHP_EOL; echo Style::underline('Underline') . PHP_EOL; echo Style::nounderline('No underline') . PHP_EOL; echo Style::negative('Negative') . PHP_EOL; echo Style::positive('Positive') . PHP_EOL;
Ask questions interactively
You can make the CLI more interactive by requesting input from the user, with the help of the Input
class:
$answer = Input::ask('<question>', '<optional default value>');
use lfischer\cli\Input; $name = Input::ask('What is your name?'); $result = Input::ask('Do you like PHP?', 'yes');
Static code analysis and code style
The code is being statically analyzed with the help of vimeo/psalm. The PSR2 code style will be checked/applied with the help of friendsofphp/php-cs-fixer.
Unit tests thanks to PHP Unit
Starting with version 1.3.0 there are unit tests for the basic usage of colors and styles.