Je me suis fait un script pour déployer le site en production. Pourquoi aviez-vous besoin d'afficher ce qui se passe? Et pour le rendre plus clair, j'ai décidé d'afficher en couleur. Cependant, je n'ai pas pu trouver quelque chose de convenable. Tout au plus, la bibliothèque affiche du texte en couleur, mais ne prend pas en charge le remplissage. Par conséquent, j'ai créé ma propre bibliothèque pour cela. Peut-être que quelqu'un sera utile. Une petite bibliothèque (mais fonctionnelle) pour la sortie de texte en couleur vers la console avec prise en charge de l'indentation sous cette forme
Console::indent(2)->color('brown')->bgcolor('magenta')->writeln(' Habr!');

- L'installation
- Utiliser
- Indentation
- Les styles
- Journalisation
- Sucre syntaxique
L'installation
Vous pouvez utiliser le compositeur pour l'installation
composer require shasoft/console
ou télécharger depuis github
Utiliser
Liste de toutes les couleurs prises en charge. Les noms de colonne sont des couleurs d'arrière-plan, les noms de ligne sont des couleurs de texte.

Sortie texte couleur
- Couleur de la fonction ( valeur ) - définir la couleur du texte
- Fonction bgcolor ( valeur ) - définit la couleur d'arrière-plan
- La fonction d' écriture ( valeur1 , valeur2 , ... ) - affiche la valeur à l'écran. Si la valeur n'est pas une chaîne, elle est convertie en chaîne à l'aide de la fonction php var_export ( valeur , vrai )
- Fonction reset () - réinitialise les couleurs aux valeurs par défaut
- Fonction setDefault () - définit les couleurs par défaut. Valeurs par défaut: couleur d'arrière-plan = noir, couleur du texte = blanc
- Entrée de fonction ( $ resetColor = true). Par défaut, un appel de fonction réinitialise les couleurs à leurs valeurs par défaut. Notez que la ligne n'est pas affichée tant que la fonction enter () n'est pas appelée. En effet, la bibliothèque prend en charge le remplissage.
- Fonction writeln ( ... ) - écrire ( ... ) + entrer ()
use Shasoft\Console\Console;
Indentation
Pour travailler avec l'indentation, utilisez la fonction d' indentation ( valeur d'indentation [, valeur absolue ]) - si le deuxième paramètre est spécifié et si = true, alors l'indentation est absolue. Sinon, le retrait est relatif. Pour obtenir le retrait actuel, vous devez appeler la fonction indent () sans paramètres.
Un exemple:
use Shasoft\Console\Console; Console::indent(0,true);
= 2 indent(1) = 3 = 2 indent(-1) = 2 = 2 indent(10) = 10 = 2 indent(1) = 1
conclusion: 
- Fonction setTabSize ( tab tab ) - définit la taille de l'onglet. Par défaut = 3
- Fonction setSpace ( symbole ) - définit le caractère de tabulation. Par défaut = '' (espace)
la fonction de retrait est appliquée à la ligne de sortie et la valeur change jusqu'à ce que la fonction enter () soit appelée. C'est-à-dire ce code imprimera la ligne en retrait 3
Console::indent(0,true)->color('red')->indent(1)->bgcolor('blue')->indent(1)->write(' 3')->indent(1)->enter();
Les styles
Vous pouvez spécifier des styles. Le style d'erreur par défaut est "erreur"
- Fonction SetStyle ( nom du style , couleur du texte = null, couleur d'arrière - plan = null) - définir les paramètres de style
- Style de fonction ( nom du style ) - utilisez le style spécifié
Exemple d'utilisation:
Console::indent(1,true)->style("error")->writeln('- ');
conclusion: 
Journalisation
Il existe des fonctions spéciales pour le contrôle de la journalisation.
- Fonction setLogLevel ( $ value = null) - Définit / obtient le niveau de journalisation global. Par défaut = 0
- Fonction logLevel ( $ value = null) - Définit / obtient le niveau de journalisation. Par défaut = 0
Les valeurs sont affichées à l'aide de la fonction write () uniquement si le niveau de journalisation actuel est inférieur à égal au niveau de journalisation global.
Un exemple:
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();
Sucre syntaxique
Afin de ne pas écrire de couleur ('rouge') -> bgcolor ('vert') peut être écrit sous forme abrégée
Console::red()->bg_green()->writeln(' .');
La couleur d'arrière-plan peut être définie par la fonction sans souligner. Cependant, il sépare visuellement la couleur du préfixe et, à mon avis, est très pratique.
Page de la bibliothèque
upd : puisqu'ils ont signalé une erreur dans le nom de la fonction ident au lieu du retrait , je l'ai corrigé afin de ne pas gêner ceux qui connaissent bien l'anglais :)