matks/vivian

PHP 工具,提供美观的控制台输出

v2.0 2014-11-13 12:57 UTC

This package is auto-updated.

Last update: 2024-09-09 23:57:57 UTC


README

Latest Stable Version Build Status Scrutinizer Code Quality Code Coverage Latest Unstable Version License

提供 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)。我推荐它。