win0err / php-terminal-tools
PHP Terminal Tools
Requires
- php: ^7.0
Requires (Dev)
- phpunit/phpunit: ^6.1
This package is not auto-updated.
Last update: 2024-09-15 04:00:15 UTC
README
PHP Terminal Tools облегчают работу с терминалом в проектах, написанных на языке PHP.
Установка
Чтобы установить, используйте Composer:
composer require win0err/php-terminal-tools
Использование
<?php use win0err\TerminalTools\TextFormatter; use win0err\TerminalTools\Colors\{Classic, Extended, TrueColor}; $textFormatter = new TextFormatter( "Съешь ещё этих мягких французских булок, да выпей чаю" ); echo $textFormatter; // или сокращённая запись: echo TextFormatter::format( "В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!" /* $text */, // Обязательно new Extended(198) /* $textColor = null */, new Extended(200) /* $backgroundColor = null*/, TextFormatter::BOLD /* ...$styles */ );
Стиль текста
Для установки стилей используется метод setStyles
.
Поддерживаются 6 стилей:
жирный, блеклый, подчёркнутый, мигающий, инвертированный, скрытый.
Для удобства, все они предопределены в классе TextFormatter.
$textFormatter->setStyles( TextFormatter::UNDERLINE );
Стили можно комбинировать:
$textFormatter->setStyles( TextFormatter::BOLD, TextFormatter::UNDERLINE ); // или $textFormatter->setStyles( TextFormatter::BOLD ); $textFormatter->setStyles( TextFormatter::UNDERLINE );
Цвет текста
Для установки цвета текста, используется метод setTextColor
, для цвета фона — setBackgroundColor
.
Классическая палитра (16 цветов)
В классе Classic для удобства предопределены константы для всех возможных цветов данной палитры.
$color = new Classic( Classic::MAGENTA ); $textFormatter ->setTextColor( $color ) ->setBackgroundColor( new Classic( Classic::WHITE ) );
Расширенная палитра (256 цветов)
В классе Extended для удобства предопределены константы 16-ти основных цветов палитры. Остальные цвета можно задать числом в диапазоне от 0 до 255.
$textFormatter ->setTextColor( new Extended( 198 ) ) ->setBackgroundColor( new Extended( rand(0, 255) ) );
Палитра TrueColor (поддерживается редко)
В классе TrueColor для удобства предопределены константы основных цветов палитры. Остальные цвета можно задать как HEX-кодами:
$textFormatter ->setTextColor( TrueColor::hex( TrueColor::REBECCA_PURPLE ) ) ->setBackgroundColor( TrueColor::hex( "#fff" ) ) );
Так и значениями красного, зелёного и синего в диапазоне от 0 до 255:
$textFormatter->setTextColor( new TrueColor( 255, 255, 255 ) );
Пример
Исходный код примера
<?php require 'vendor/autoload.php'; use win0err\TerminalTools\TextFormatter; use win0err\TerminalTools\Colors\{ Classic, Extended, TrueColor }; $textFormatter = new TextFormatter( " " ); echo 'System colors:' . PHP_EOL . PHP_EOL; for( $i = 30; $i < 38; $i++ ) echo $textFormatter->setBackgroundColor( new Classic( $i ) ); echo PHP_EOL; for( $i = 90; $i < 98; $i++ ) echo $textFormatter->setBackgroundColor( new Classic( $i ) ); echo PHP_EOL . PHP_EOL . PHP_EOL; echo 'Extended palette: ' . PHP_EOL . PHP_EOL; for( $green = 0; $green < 6; $green++ ) { for( $red = 0; $red < 6; $red++ ) { for( $blue = 0; $blue < 6; $blue++ ) echo $textFormatter->setBackgroundColor( new Extended( 16 + ($red * 36) + ($green * 6) + $blue ) ); echo " "; } echo PHP_EOL; } echo PHP_EOL; for( $color = 232; $color < 256; $color++ ) echo $textFormatter->setBackgroundColor( new Extended( $color ) ); echo PHP_EOL . PHP_EOL . PHP_EOL; echo 'TrueColor palette (partially): ' . PHP_EOL . PHP_EOL; for( $green = 0; $green < 256; $green += 51 ) { for( $red = 0; $red < 256; $red += 51 ) { for( $blue = 0; $blue < 256; $blue += 51 ) echo $textFormatter->setBackgroundColor( new TrueColor( $red, $green, $blue ) ); echo " "; } echo PHP_EOL; } echo PHP_EOL;