CLI-Frameworks für PHP: vollständiger Überblick und Vergleich der besten Tools

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

Was ist ein CLI-Framework für PHP und warum wird es benötigt?



Ein CLI (Command Line Interface) Framework für PHP ist ein Werkzeug, das die Erstellung von Konsolenanwendungen und Skripten vereinfacht. Anstatt Argumente manuell mit $argv zu parsen und Ein-/Ausgabe zu verarbeiten, erhalten Sie eine fertige Architektur mit Unterstützung für Befehle, Optionen, farbige Ausgabe, Fortschrittsbalken und sogar interaktive Menüs.



In der modernen PHP-Entwicklung werden CLI-Frameworks überall eingesetzt:

  • Automatisierung von Aufgaben (DB-Migrationen, Caching, Deployment)
  • Code-Generierung (Scaffolding)
  • CRON-Skripte und Hintergrundverarbeiter
  • DevOps- und CI/CD-Tools


Schauen wir uns die fünf beliebtesten Lösungen an, die Sie auf pythonlib.ru verwenden können.



1. Symfony Console — der Industriestandard



Symfony Console ist das ausgereifteste und beliebteste CLI-Framework für PHP. Es wird in Laravel Artisan, Doctrine, Composer und Hunderten anderer Projekte verwendet.



Installation

composer require symfony/console


Beispiel: Einfache "Hello World"-Anwendung

// hello.phprequire __DIR__ . '/vendor/autoload.php';

use Symfony\\Component\\Console\\Application;use Symfony\\Component\\Console\\Command\\Command;use Symfony\\Component\\Console\\Input\\InputInterface;use Symfony\\Component\\Console\\Output\\OutputInterface;

class HelloCommand extends Command{ protected static $defaultName = 'app:hello';

protected function configure(): void { $this->setDescription('Benutzer begrüßen'); }

protected function execute(InputInterface $input, OutputInterface $output): int { $output->writeln('<info>Hallo, Welt!</info>'); return Command::SUCCESS; }}

$application = new Application();$application->add(new HelloCommand());$application->run();


Wichtige Funktionen

  • Automatische Hilfegenerierung (--help)
  • Unterstützung für Optionen und Argumente mit Validierung
  • Farbige Ausgabe durch Stile (info, error, comment)
  • Fortschrittsbalken, Tabellen, Fragen
  • Testen von Befehlen mit CommandTester


2. Laravel Zero — Micro-Framework basierend auf Laravel



Laravel Zero ist eine abgespeckte Version von Laravel, optimiert für die CLI. Ideal geeignet, wenn Sie mit dem Laravel-Ökosystem vertraut sind, aber nicht das gesamte Framework mitnehmen möchten.



Installation

composer create-project laravel-zero/laravel-zero my-cli-app


Beispiel: Befehl mit Argumenten

// app/Commands/GreetCommand.phpnamespace App\\Commands;

use LaravelZero\\Framework\\Commands\\Command;

class GreetCommand extends Command{ protected $signature = 'greet {name : Benutzername} {--yell : Schreien?}'; protected $description = 'Begrüßung mit Namen';

public function handle(): int { $name = $this->argument('name'); $message = "Hallo, $name!"; if ($this->option('yell')) { $message = strtoupper($message); } $this->info($message); return self::SUCCESS; }}


Was ist enthalten?

  • Eloquent ORM (optional)
  • Artisan-ähnliche Befehle
  • Unterstützung für Warteschlangen und Aufgaben
  • Migrationen und Seeding für die Datenbank
  • Integrierte Kompilierung in ein PHAR-Archiv


3. Minicli — minimalistisch und schnell



Minicli ist ein leichtgewichtiges CLI-Framework ohne Abhängigkeiten. Es wiegt weniger als 100 KB und ist ideal für Microservices und einfache Dienstprogramme.



Installation

composer require minicli/minicli


Beispiel: Interaktive Umfrage

// app.phprequire __DIR__ . '/vendor/autoload.ph                    

Empfehlungen