Classe PHP para gerar texto colorido no console

Eu criei um script para implantar o site na produção. Por que você precisou exibir o que está acontecendo? E para tornar mais claro, decidi exibir em cores. No entanto, não consegui encontrar algo adequado. No máximo, a biblioteca exibia texto colorido, mas não suportava preenchimento. Portanto, eu fiz minha própria biblioteca para isso. Talvez alguém seja útil. Uma pequena (mas funcional) biblioteca para saída de texto colorido no console com suporte para recuo neste formulário


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


  1. Instalação
  2. Use
  3. Indentação
  4. Estilos
  5. Registo
  6. Açúcar sintático

Instalação


Você pode usar o compositor para instalação


 composer require shasoft/console 

ou faça o download no github


Use


Lista de todas as cores suportadas. Os nomes das colunas são cores de segundo plano, nomes de linhas são cores de texto.
Exemplo de saída de texto colorido


Saída de texto colorido


  • Cor da função ( valor ) - define a cor do texto
  • Função bgcolor ( valor ) - define a cor do plano de fundo
  • A função de gravação ( valor1 , valor2 , ... ) - exibe o valor na tela. Se o valor não for uma string, ele será convertido em uma string usando a função php var_export ( value , true )
  • Função reset () - redefine as cores para os valores padrão
  • Função setDefault () - define as cores padrão. Valores padrão: cor de fundo = preto, cor do texto = branco
  • Função enter ( $ resetColor = true). Por padrão, uma chamada de função redefine as cores para seus valores padrão. Observe que a linha não é exibida até que a função enter () seja chamada. Isso ocorre porque a biblioteca suporta preenchimento.
  • Função writeln ( ... ) - write ( ... ) + 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('    '); 

Indentação


Para trabalhar com indentação, use a função indent ( valor de indentação [, valor absoluto ]) - se o segundo parâmetro for especificado e = true, a indentação será absoluta. Caso contrário, o recuo é relativo. Para obter o recuo atual, você precisa chamar a função indent () sem parâmetros.


Um exemplo:


 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 

conclusão: Exemplo de saída recuada


  • Função setTabSize ( tamanho da guia ) - define o tamanho da guia. Padrão = 3
  • Função setSpace ( símbolo ) - define o caractere de tabulação. Padrão = '' (espaço)

a função indent é aplicada à saída LINE e o valor muda até que a função enter () seja chamada. I.e. esse código imprimirá a linha 3 recuada


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

Estilos


Você pode especificar estilos. O estilo de erro padrão é "error"


  • Função SetStyle ( nome do estilo , cor do texto = nulo, cor do plano de fundo = nulo) - define os parâmetros do estilo
  • Estilo da função ( nome do estilo ) - use o estilo especificado

Exemplo de uso:


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

conclusão: Exemplo de estilo


Registo


Existem funções especiais para controle de log.


  • Função setLogLevel ( $ value = null) - Define / obtém o nível de log global. Padrão = 0
  • Função logLevel ( $ value = null) - Define / obtém o nível de log. Padrão = 0

Os valores são exibidos usando a função write () apenas se o nível de log atual for menor que igual ao nível de log global.


Um exemplo:


 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(); 

Açúcar sintático


Para não escrever a cor ('vermelho') -> bgcolor ('verde') pode ser escrito em formato abreviado


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

A cor de fundo pode ser definida pela função sem sublinhado. No entanto, separa visualmente a cor do prefixo e, na minha opinião, é muito conveniente.


Página da biblioteca


upd : como eles apontaram um erro no nome da função ident em vez de recuar , eu o corrigi para não embaraçar quem conhece bem o inglês :)

Source: https://habr.com/ru/post/pt432242/


All Articles