CLI-Tools mit PHP: Konsolenanwendungen von Grund auf erstellen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

CLI-Tools mit PHP: Warum Sie noch kein eigenes Konsolen-Tool geschrieben haben?

\n\n

Stellen 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\n

Viele 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\n

Wenn 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\n

Was ist ein CLI-Tool und wozu braucht man es?

\n\n

CLI (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\n

Warum 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
\n\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\n

Los geht's: Ein minimales CLI-Skript in PHP

\n\n

Öffnen Sie ein Terminal, erstellen Sie eine Datei hallo.php und schreiben Sie:

\n\n
<?php\necho "Hallo, Terminal!\\n";\n
\n\n

Führen Sie es aus:

\n\n
php hallo.php\n
\n\n

Sie sehen:

\n\n
Hallo, Terminal!
\n\n

Herzlichen 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\n

Arbeiten mit Argumenten: $argv und $argc

\n\n

PHP 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.

\n\n

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\n

Aufruf:

\n\n
php hallo.php Max\n
\n\n

Ergebnis:

\n\n
Hallo, Max!
\n\n

Das 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\n

Symfony Console: Eine solide Grundlage für CLI-Tools mit PHP

\n\n

Symfony 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
\n\n

Installation über Composer:

\n\n
composer require symfony/console\n
\n\n

Jetzt erstellen wir ein vollwertiges CLI-Tool mit PHP – einen Passwort-Generator.

\n\n

Einen Befehl zur Passwortgenerierung schreiben

\n\n

Die Projektstruktur

Blogs

Buchempfehlungen