Giter Site home page Giter Site logo

skurkovpavel / php-terminal-tools Goto Github PK

View Code? Open in Web Editor NEW

This project forked from win0err/php-terminal-tools

0.0 1.0 0.0 21 KB

PHP Terminal Tools облегчают работу с терминалом в проектах, написанных на языке PHP

License: MIT License

PHP 100.00%

php-terminal-tools's Introduction

PHP Terminal Tools

Travis Latest Stable Version

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 Terminal Tools

Исходный код примера

<?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;

php-terminal-tools's People

Contributors

win0err avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.