CLI-Tools mit PHP: Warum Sie noch kein eigenes Konsolen-Tool geschrieben haben?
\n\nStellen Sie sich vor: Sie sitzen im Terminal, geben einen Befehl ein – und eine Sekunde später haben Sie einen fertigen Bericht, alle Bilder sind konvertiert oder ein Projekt auf einem neuen Server eingerichtet. Ohne Browser, ohne Maus, ohne überflüssige Aktionen. Klingt nach Magie? Nein, das sind ganz normale CLI-Tools mit PHP.
\n\nViele Entwickler betrachten PHP nur als „Websprache“. Dabei ist PHP ein hervorragendes Werkzeug für die Entwicklung von Konsolenanwendungen. Es bietet eine integrierte Arbeit mit Ein-/Ausgabeströmen, eine praktische Argumentverarbeitung und natürlich leistungsstarke Bibliotheken wie Symfony Console. In diesem Artikel zeigen wir Ihnen, wie Sie ein PHP Konsolen-Skript von Grund auf erstellen – von einem einfachen Echo bis zu einem vollwertigen Tool mit Farben und Fortschrittsbalken.
\n\nWenn Sie monotone Aufgaben von Hand satt haben, Ihren Arbeitsablauf automatisieren und sich wie ein echter Hacker fühlen möchten, sind Sie hier genau richtig. Los geht's!
\n\nWas ist ein CLI-Tool und wozu braucht man es?
\n\nCLI (Command Line Interface) ist ein Programm, das in der Befehlszeile läuft. Es nimmt Argumente entgegen, führt Aktionen aus und gibt Ergebnisse aus. Im Gegensatz zu Webanwendungen gibt es hier kein HTML, CSS oder JavaScript. Nur reiner Code und das Terminal.
\n\nWarum CLI-Tools mit PHP schreiben? Hier sind einige Szenarien:
\n\n- \n
- Datenmigrationen – Übertragen von Informationen aus CSV in eine Datenbank. \n
- Berichtsgenerierung – Sammeln von Statistiken und Erstellen von PDF oder Excel. \n
- Deployment-Automatisierung – Einrichten eines Projekts auf einem Server mit einem einzigen Befehl. \n
- Dateiverarbeitung und -analyse – Konvertieren, Komprimieren, Umbenennen. \n
- CRON-Jobs – Regelmäßige Aufgaben, die nach einem Zeitplan ausgeführt werden. \n
Und das Wichtigste: Die Entwicklung von Konsolen-Tools mit PHP erfordert keine komplexe Infrastruktur. Eine einzige Datei und ein paar Zeilen Code reichen aus.
\n\nLos geht's: Ein minimales CLI-Skript in PHP
\n\nÖffnen Sie ein Terminal, erstellen Sie eine Datei hallo.php und schreiben Sie:
<?php\necho "Hallo, Terminal!\\n";\n\n\nFühren Sie es aus:
\n\nphp hallo.php\n\n\nSie sehen:
\n\nHallo, Terminal!\n\nHerzlichen Glückwunsch! Sie haben gerade Ihr erstes CLI-Tool mit PHP geschrieben. Aber machen wir es nützlicher. Fügen wir die Verarbeitung von Befehlszeilenargumenten hinzu.
\n\nArbeiten mit Argumenten: $argv und $argc
\n\nPHP bietet zwei superglobale Arrays für die Arbeit mit der Konsole: $argv (Liste der Argumente) und $argc (Anzahl der Argumente). Das erste Argument (Index 0) ist der Name des Skripts selbst.
Beispiel:
\n\n<?php\nif ($argc < 2) {\n echo "Verwendung: php hallo.php [Name]\\n";\n exit(1);\n}\n\n$name = $argv[1];\necho "Hallo, $name!\\n";\n\n\nAufruf:
\n\nphp hallo.php Max\n\n\nErgebnis:
\n\nHallo, Max!\n\nDas ist schon interessant. Aber für ernsthafte Projekte ist dieser Ansatz unpraktisch. Benötigt werden benannte Argumente, Flags und Standardwerte. Hier kommt die Bibliothek Symfony Console ins Spiel.
\n\nSymfony Console: Eine solide Grundlage für CLI-Tools mit PHP
\n\nSymfony Console ist der De-facto-Standard für die Erstellung von Konsolenanwendungen in PHP. Damit können Sie ganz einfach Folgendes hinzufügen:
\n\n- \n
- Benannte Argumente und Optionen \n
- Farbige Ausgabe \n
- Fortschrittsbalken \n
- Eingabevalidierung \n
- Autoloading von Befehlen \n
Installation über Composer:
\n\ncomposer require symfony/console\n\n\nJetzt erstellen wir ein vollwertiges CLI-Tool mit PHP – einen Passwort-Generator.
\n\nEinen Befehl zur Passwortgenerierung schreiben
\n\nDie Projektstruktur