Classe PHP pour sortir du texte en couleur sur la console

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!'); 


  1. L'installation
  2. Utiliser
  3. Indentation
  4. Les styles
  5. Journalisation
  6. 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.
Exemple de sortie de texte en couleur


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; //      Console::color('red')->bgcolor('green')->write('    ')->enter(); //      Console::color('green')->bgcolor('red')->writeln('    '); //      Console::color('red')->bgcolor('white')->write('     ')->reset()->writeln('    '); 

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

conclusion: Exemple de sortie en retrait


  • 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: Exemple de style


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 :)

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


All Articles