Clase PHP para enviar texto coloreado a la consola

Hice un script para m铆 mismo para implementar el sitio en producci贸n. 驴Por qu茅 necesitabas mostrar lo que est谩 sucediendo? Y para que quede m谩s claro, decid铆 mostrar en color. Sin embargo, no pude encontrar algo adecuado. Como m谩ximo, la biblioteca mostraba texto en color, pero no admit铆a relleno. Por lo tanto, hice mi propia biblioteca para esto. Quiz谩s alguien sea 煤til. Una biblioteca peque帽a (pero funcional) para enviar texto coloreado a la consola con soporte para sangr铆a en este formulario


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


  1. Instalaci贸n
  2. Uso
  3. Sangr铆a
  4. Estilos
  5. Registro
  6. Az煤car sint谩ctica

Instalaci贸n


Puedes usar el compositor para la instalaci贸n


 composer require shasoft/console 

o descargar desde github


Uso


Lista de todos los colores admitidos. Los nombres de columna son colores de fondo, los nombres de fila son colores de texto.
Ejemplo de salida de texto en color


Salida de texto en color


  • Color de funci贸n ( valor ): establece el color del texto
  • Funci贸n bgcolor ( valor ): establece el color de fondo
  • La funci贸n de escritura ( valor1 , valor2 , ... ): muestra el valor en la pantalla. Si el valor no es una cadena, entonces se convierte en una cadena usando la funci贸n php var_export ( value , true )
  • Funci贸n reset (): restablece los colores a los valores predeterminados
  • Funci贸n setDefault (): establece los colores predeterminados. Valores predeterminados: color de fondo = negro, color de texto = blanco
  • Funci贸n enter ( $ resetColor = true). Por defecto, una llamada a funci贸n restablece los colores a sus valores predeterminados. Tenga en cuenta que la l铆nea no se muestra hasta que se llama a la funci贸n enter (). Esto se debe a que la biblioteca admite relleno.
  • Funci贸n 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('    '); 

Sangr铆a


Para trabajar con sangr铆a, use la funci贸n de sangr铆a ( valor de sangr铆a [, valor absoluto ]): si se especifica el segundo par谩metro y es = verdadero, entonces la sangr铆a es absoluta. De lo contrario, la sangr铆a es relativa. Para obtener la sangr铆a actual, debe llamar a la funci贸n indent () sin par谩metros.


Un ejemplo:


 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 

conclusi贸n: Ejemplo de salida con sangr铆a


  • Funci贸n setTabSize ( tama帽o de pesta帽a ): establece el tama帽o de la pesta帽a. Predeterminado = 3
  • Funci贸n setSpace ( s铆mbolo ): establece el car谩cter de tabulaci贸n. Predeterminado = '' (espacio)

la funci贸n de sangr铆a se aplica a la l铆nea de salida y el valor cambiar谩 hasta que se llame a la funci贸n enter (). Es decir este c贸digo imprimir谩 la l铆nea sangrada 3


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

Estilos


Puedes especificar estilos. El estilo de error predeterminado es "error"


  • Funci贸n SetStyle ( nombre de estilo , color de texto = nulo, color de fondo = nulo) - establece par谩metros de estilo
  • Estilo de funci贸n ( nombre de estilo ): use el estilo especificado

Ejemplo de uso:


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

conclusi贸n: Ejemplo de estilo


Registro


Hay funciones especiales para el control de registro.


  • Funci贸n setLogLevel ( $ value = null): establece / obtiene el nivel de registro global. Predeterminado = 0
  • Funci贸n logLevel ( $ value = null): establece / obtiene el nivel de registro. Predeterminado = 0

Los valores se muestran utilizando la funci贸n write () solo si el nivel de registro actual es menor que el nivel de registro global.


Un ejemplo:


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

Az煤car sint谩ctica


Para no escribir color ('rojo') -> bgcolor ('verde') se puede escribir en forma corta


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

La funci贸n puede establecer el color de fondo sin subrayar. Sin embargo, visualmente separa el color del prefijo y, en mi opini贸n, es muy conveniente.


P谩gina de la biblioteca


upd : como se帽alaron un error en el nombre de la funci贸n de identificaci贸n en lugar de sangr铆a , lo arregl茅 para no avergonzar a los que saben bien ingl茅s :)

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


All Articles