PHP - Clase ColorComponent para aplicar color a los echo o print
Estoy creando un proyecto de consola y gestión de crons desde 0. Funciona y la tengo en producción, como es habitual es código abierto que lo tengo en gihub.
Estuve investigando como aplicar un poco de color para diferenciar mejor las opciones en pantalla.
Ha quedado así:
Para poder darle algo de color he creado la clase ColorComponent.
A continuación explico su uso y un ejemplo
Ejemplo 1: Usando el método estático text
//importamos el componente
//puedes copiar el contenido y pegarlo en cualquier clase que quieras puesto
use App\Component\ColorComponent as Color;
...
$title = "
Title in magenta!
";
$text = "
It has survived not only five centuries, but also the leap into electronic typesetting,
remaining essentially unchanged. It was popularised in the 1960s with the release of
etraset sheets containing Lorem Ipsum passages, and more recently with desktop
publishing software like Aldus PageMaker including versions of Lorem Ipsum.
";
echo Color::text($title, Color::MAGENTA);
echo Color::text($text, Color::LIGHT_CYAN);
Resultado
Ejemplo 2: Instanciando el objeto
La intención de esta modalidad es poder apilar todo el texto en la instancia de modo que se pueda aplicar un color por cada palabra o frase.
Después de tener todo el texto configurado se puede obtener el string final con ->get()
use App\Component\ColorComponent as Color;
(new Color())
->add("\n\nwhite\n",Color::WHITE)
->add("red\n",Color::RED)
->add("green\n",Color::GREEN)
->add("yellow\n",Color::YELLOW)
->add("blue\n",Color::BLUE)
->add("magenta\n",Color::MAGENTA)
->add("cyan\n",Color::CYAN)
->add("dark gray\n",Color::DARK_GRAY)
->add("light gray\n",Color::LIGHT_GRAY)
->add("light red\n",Color::LIGHT_RED)
->add("light green\n",Color::LIGHT_GREEN)
->add("light yellow\n",Color::LIGHT_YELLOW)
->add("light blue\n",Color::LIGHT_BLUE)
->add("light magenta\n",Color::LIGHT_MAGENTA)
->add("light cyan\n",Color::LIGHT_CYAN)
->add("light white\n",Color::LIGHT_WHITE)
->add("background\n",42)
->print("\t");
Resultado
El código fuente anterior lo puedes encontrar aquí
Autor: Eduardo A. F.
Publicado: 02-01-2021 18:13
Actualizado: 02-01-2021 18:31