Ich habe ein Skript für mich erstellt, um die Site für die Produktion bereitzustellen. Warum mussten Sie anzeigen, was passiert? Und um es klarer zu machen, habe ich beschlossen, in Farbe anzuzeigen. Ich konnte jedoch nichts Passendes finden. In der Bibliothek wurde höchstens farbiger Text angezeigt, das Auffüllen wurde jedoch nicht unterstützt. Deshalb habe ich dafür meine eigene Bibliothek erstellt. Vielleicht ist jemand nützlich. Eine kleine (aber funktionale) Bibliothek zur Ausgabe von farbigem Text an die Konsole mit Unterstützung für Einrückungen in dieser Form
Console::indent(2)->color('brown')->bgcolor('magenta')->writeln(' Habr!');

- Installation
- Verwenden Sie
- Einrückung
- Stile
- Protokollierung
- Syntaktischer Zucker
Installation
Sie können Composer für die Installation verwenden
composer require shasoft/console
oder von github herunterladen
Verwenden Sie
Liste aller unterstützten Farben. Spaltennamen sind Hintergrundfarben, Zeilennamen sind Textfarben.

Farbtextausgabe
- Funktionsfarbe ( Wert ) - Stellen Sie die Textfarbe ein
- Funktion bgcolor ( Wert ) - Stellen Sie die Hintergrundfarbe ein
- Die Schreibfunktion ( Wert1 , Wert2 , ... ) - zeigt den Wert auf dem Bildschirm an. Wenn der Wert kein String ist, wird er mit der PHP-Funktion var_export ( value , true ) in einen String konvertiert.
- Funktion reset () - setzt die Farben auf die Standardwerte zurück
- Funktion setDefault () - Legt die Standardfarben fest. Standardwerte: Hintergrundfarbe = Schwarz, Textfarbe = Weiß
- Funktion eingeben ( $ resetColor = true). Standardmäßig setzt ein Funktionsaufruf die Farben auf ihre Standardwerte zurück. Beachten Sie, dass die Zeile erst angezeigt wird, wenn die Funktion enter () aufgerufen wird. Dies liegt daran, dass die Bibliothek das Auffüllen unterstützt.
- Funktion writeln ( ... ) - write ( ... ) + enter ()
use Shasoft\Console\Console;
Einrückung
Verwenden Sie zum Arbeiten mit Einrückungen die Einrückungsfunktion ( Einrückungswert [, absoluter Wert ]). Wenn der zweite Parameter angegeben ist und = true, ist die Einrückung absolut. Ansonsten ist der Einzug relativ. Um den aktuellen Einzug zu erhalten, müssen Sie die Funktion indent () ohne Parameter aufrufen.
Ein Beispiel:
use Shasoft\Console\Console; Console::indent(0,true);
= 2 indent(1) = 3 = 2 indent(-1) = 2 = 2 indent(10) = 10 = 2 indent(1) = 1
Fazit: 
- Funktion setTabSize ( Registerkartengröße ) - Legt die Größe der Registerkarte fest. Standard = 3
- Funktion setSpace ( Symbol ) - Legt das Tabulatorzeichen fest. Standard = '' (Leerzeichen)
Die Einrückungsfunktion wird auf die Ausgangszeile angewendet und der Wert ändert sich, bis die Funktion enter () aufgerufen wird. Das heißt, Dieser Code druckt die eingerückte Zeile 3
Console::indent(0,true)->color('red')->indent(1)->bgcolor('blue')->indent(1)->write(' 3')->indent(1)->enter();
Stile
Sie können Stile angeben. Der Standardfehlerstil ist "Fehler".
- SetStyle- Funktion ( Stilname, Textfarbe = null, Hintergrundfarbe = null) - Legen Sie Stilparameter fest
- Funktionsstil ( Stilname ) - Verwenden Sie den angegebenen Stil
Anwendungsbeispiel:
Console::indent(1,true)->style("error")->writeln('- ');
Fazit: 
Protokollierung
Es gibt spezielle Funktionen für die Protokollierungssteuerung.
- Funktion setLogLevel ( $ value = null) - Setzt / ruft die globale Protokollierungsstufe ab. Standard = 0
- Funktion logLevel ( $ value = null) - Setzt / ruft die Protokollierungsstufe ab. Standard = 0
Werte werden mit der Funktion write () nur angezeigt, wenn die aktuelle Protokollierungsstufe kleiner als die globale Protokollierungsstufe ist.
Ein Beispiel:
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();
Syntaktischer Zucker
Um keine Farbe ('rot') zu schreiben, kann> bgcolor ('grün') in Kurzform geschrieben werden
Console::red()->bg_green()->writeln(' .');
Die Hintergrundfarbe kann durch die Funktion ohne Unterstreichung eingestellt werden. Es trennt jedoch visuell die Farbe vom Präfix und ist meiner Meinung nach sehr praktisch.
Bibliotheksseite
upd : da sie auf einen Fehler im Namen der ident-Funktion anstatt auf den Einzug hingewiesen haben, habe ich ihn behoben, um diejenigen, die gut Englisch sprechen , nicht in Verlegenheit zu bringen :)