PHP类将彩色文本输出到控制台

我为自己编写了一个脚本,以将该站点部署到生产环境。 您为什么需要显示正在发生的事情。 为了更加清晰,我决定使用彩色显示。 但是,我找不到合适的东西。 库最多显示彩色文本,但不支持填充。 因此,我为此创建了自己的库。 也许有人会有用。 一个小型(但实用)的库,用于向控制台输出彩色文本,并支持这种形式的缩进


Console::indent(2)->color('brown')->bgcolor('magenta')->writeln(' Habr!'); 


  1. 安装方式
  2. 使用方法
  3. 压痕
  4. 款式
  5. 记录中
  6. 句法糖

安装方式


您可以使用作曲家进行安装


 composer require shasoft/console 

或从github下载


使用方法


所有支持的颜色列表。 列名称是背景色,行名称是文本色。
彩色文字输出示例


彩色文字输出


  • 功能颜色 )-设置文字颜色
  • 函数bgcolorvalue )-设置背景色
  • 写入功能( value1value2... )-在屏​​幕上显示该值。 如果该不是字符串,则使用php函数var_exportvaluetrue )将其转换为字符串。
  • 函数reset ()-将颜色重置为默认值
  • 函数setDefault ()-设置默认颜色。 默认值:背景颜色=黑色,文本颜色=白色
  • 函数enter$ resetColor = true)。 默认情况下,函数调用会将颜色重置为其默认值。 请注意,只有在调用enter()函数后才会显示该行。 这是因为该库支持填充。
  • 函数writeln... )-写( ... )+ enter()

 use Shasoft\Console\Console; //      Console::color('red')->bgcolor('green')->write('    ')->enter(); //      Console::color('green')->bgcolor('red')->writeln('    '); //      Console::color('red')->bgcolor('white')->write('     ')->reset()->writeln('    '); 

压痕


要使用缩进,请使用缩进功能( 缩进值 [, 绝对值 ])-如果指定了第二个参数且它= true,则缩进为绝对值。 否则,缩进是相对的。 要获取当前的缩进,您需要不带参数的情况下调用indent()函数。


一个例子:


 use Shasoft\Console\Console; Console::indent(0,true); //  0 Console::indent(1)->color('red')->writeln(' 1'); Console::indent(3,true)->color('green')->writeln(' 3'); Console::indent(-1)->color('blue')->writeln(' 2'); 

     = 2 indent(1)  = 3     = 2 indent(-1)  = 2     = 2 indent(10)  = 10     = 2 indent(1)  = 1 

结论: 缩进输出示例


  • 函数setTabSize标签大小 )-设置标签的大小 。 默认值= 3
  • 函数setSpace符号 )-设置制表符。 默认值=``(空格)

缩进函数将应用于输出LINE,并且该值将更改,直到调用enter()函数为止。 即 该代码将打印缩进的第3行


 Console::indent(0,true)->color('red')->indent(1)->bgcolor('blue')->indent(1)->write(' 3')->indent(1)->enter(); 

款式


您可以指定样式。 默认错误样式为“错误”


  • SetStyle函数( 样式名称文本颜色 = null, 背景颜色 = null)-设置样式参数
  • 函数样式样式 名称 )-使用指定的样式

用法示例:


 Console::indent(1,true)->style("error")->writeln('- '); 

结论: 样式示例


记录中


有用于日志记录控制的特殊功能。


  • 函数setLogLevel$ value = null)-设置/获取全局日志记录级别。 默认值= 0
  • 函数logLevel$ value = null)-设置/获取日志记录级别。 默认值= 0

仅当当前日志记录级别小于全局日志记录级别时,才使用write()函数显示值。


一个例子:


 Console::setLogLevel(0)->logLevel(1)->writeln(' ,     = 1   0'); Console::setLogLevel(2)->logLevel(1)->writeln(',     = 1  - 2'); Console::setLogLevel(2)->logLevel(3)->write('   ')->logLevel(1)->write('  ')->enter(); 

句法糖


为了不写颜色('red')-> bgcolor('green')可以写成简短形式


 Console::red()->bg_green()->writeln('     .'); 

可以通过该功能设置背景颜色,而无需使用下划线。 但是,它在视觉上将颜色与前缀分开,并且在我看来非常方便。


图书馆页面


upd :因为他们指出了ident函数的名称而不是indent的名称中的错误,所以我修复了它,以免使那些懂英语的人感到尴尬:)

Source: https://habr.com/ru/post/zh-CN432242/


All Articles