matks / vivian
Php tools to provide a pretty console output
v2.0
2014-11-13 12:57 UTC
Requires
- php: >=5.3.3
- packaged/figlet: dev-master
Requires (Dev)
- atoum/atoum: dev-master
This package is auto-updated.
Last update: 2024-10-10 00:06:06 UTC
README
Tools to provide a pretty console output in ANSI/VT100 terminals
Installation
Install the dependencies with composer
composer install
Tests
Install the dev dependencies with composer
composer install --dev
Run the unit tests suite with atoum binary.
vendor/bin/atoum -bf vendor/autoload.php -d tests/Units/
Usage
Tool
For simple styles, the class Matks\Vivian\Tools provide a useful call interface, for example:
use Matks\Vivian\Tools as Output; echo Output::bold('... done.') . PHP_EOL; if ($success) { echo Output::green('Success'); echo PHP_EOL; } else { echo Output::red('Failure !'); echo PHP_EOL; echo Output::s_list1($errors); }
See the examples in tests/Console:
php tests/Console/test-color php tests/Console/test-background-color php tests/Console/test-style php tests/Console/test-border php tests/Console/test-mixed php tests/Console/test-structure php tests/Console/test-figlet
or
bash tests/Console/test-all.sh
Elements
For advanced displays, build the Elements you need:
Text Element
use Matks\Vivian\Color; use Matks\Vivian\Style; use Matks\Vivian\Output; $textElement = new Output\TextElement('Hello world !'); $boldStyle = new Style\Style(Style\StyleManager::BASH_BOLD); $greenColor = new Color\TextColor(Color\TextColorManager::BASH_FOREGROUND_GREEN); $cyanBackgroundColor = new Color\BackgroundColor(Color\BackgroundColorManager::BASH_BACKGROUND_CYAN); $textElement->setTextColor($greenColor) ->setBackgroundColor($cyanBackgroundColor) ->addStyle($boldStyle) ; echo $textElement->render();
Bordered Element
use Matks\Vivian\Border; use Matks\Vivian\Color; use Matks\Vivian\Output; $yellowColor = new Color\TextColor(Color\TextColorManager::BASH_FOREGROUND_YELLOW); $border = new Border\Border(Border\Border::TYPE_FRAME); $borderedElement = new Output\BorderedElement('Hello world !', $border); $borderedElement->setTextColor($yellowColor); echo $borderedElement->render();
Structured Elements
use Matks\Vivian\Color; use Matks\Vivian\Output; use Matks\Vivian\Style; use Matks\Vivian\Structure; $greenColor = new Color\TextColor(Color\TextColorManager::BASH_FOREGROUND_GREEN); $redColor = new Color\TextColor(Color\TextColorManager::BASH_FOREGROUND_RED); $blinkingStyle = new Style\Style(Style\StyleManager::BASH_BLINK); $textElement1 = new Output\TextElement('Hello'); $textElement2 = new Output\TextElement('world'); $textElement3 = new Output\TextElement('!'); $textElement1->setTextColor($greenColor); $textElement2->setTextColor($redColor); $textElement3->addStyle($blinkingStyle); $elements = array( $textElement1, $textElement2, $textElement3 ); $structure = new Structure\Structure(Structure\Structure::TYPE_LIST, '#', ' '); $structuredElements = new Output\StructuredElements($elements, $structure); echo $structuredElements->render();
More about ANSI/VT100 terminal control
http://www.termsys.demon.co.uk/vtansi.htm
License
Vivian is licensed under the MIT License - see the LICENSE file for details
More advanced features
I found a far more efficient library doing the same purpose: CLImate. I recommend it.