matks / vivian
PHP 工具,提供美观的控制台输出
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-09-09 23:57:57 UTC
README
提供 ANSI/VT100 终端美观输出的工具
安装
使用 composer 安装依赖
composer install
测试
使用 composer 安装开发依赖
composer install --dev
使用 atoum 二进制文件运行单元测试套件。
vendor/bin/atoum -bf vendor/autoload.php -d tests/Units/
使用方法
工具
对于简单的样式,Matks\Vivian\Tools 类提供了一个有用的调用接口,例如
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); }
查看测试/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
或
bash tests/Console/test-all.sh
元素
对于高级显示,构建所需的元素
文本元素
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();
带边框元素
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();
结构化元素
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();
更多关于 ANSI/VT100 终端控制的信息
http://www.termsys.demon.co.uk/vtansi.htm
许可
Vivian 采用 MIT 许可证授权 - 详细信息请参阅 LICENSE 文件
更多高级功能
我发现了一个完成同样功能的库:[CLImate](https://github.com/thephpleague/climate)。我推荐它。