Console-Komponente: CLI-Befehle
Erstellen Sie interaktive CLI-Tools mit Symfony-Console-Command-Klassen.
Console-Komponente: CLI-Befehle ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist die Symfony-Console-Komponente?
Symfony Console ermöglicht Ihnen, strukturierte und testbare CLI-Anwendungen in PHP mit Optionen, Argumenten, Fortschrittsbalken und farbiger Ausgabe zu erstellen.
Installieren
Installieren Sie die Komponente.
$ composer require symfony/consoleEinen Command erstellen
Erweitern Sie Command und überschreiben Sie configure() und execute().
<?php
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class GreetCommand extends Command
{
protected static string $defaultName = "app:greet";
protected function configure(): void
{
$this->setDescription("Greet a user")
->addArgument("name", \InputArgument::REQUIRED, "Name to greet")
->addOption("uppercase", "u", \InputOption::VALUE_NONE, "Uppercase output");
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$name = $input->getArgument("name");
if ($input->getOption("uppercase")) $name = strtoupper($name);
$output->writeln("Hello, $name!");
return Command::SUCCESS;
}
}Anwendung einrichten
Registrieren Sie Commands in einer Application und führen Sie sie aus.
<?php
use Symfony\Component\Console\Application;
$app = new Application("MyApp", "1.0.0");
$app->add(new GreetCommand());
$app->run();Argumente und Optionen
Argumente sind positionsabhängig (erforderlich oder optional). Optionen sind benannte Flags (--name=value oder -n value).
<?php
$this->addArgument("file", InputArgument::REQUIRED)
->addArgument("output", InputArgument::OPTIONAL, "Output file", "out.txt")
->addOption("verbose", "v", InputOption::VALUE_NONE, "Verbose output")
->addOption("format", "f", InputOption::VALUE_REQUIRED, "Output format", "json");Ausgabe-Hilfsmethoden
Formatieren Sie die Ausgabe mit Hilfsmethoden.
<?php
$output->writeln("<info>Success!</info>");
$output->writeln("<error>Error occurred</error>");
$output->writeln("<comment>Processing...</comment>");ProgressBar
Zeigen Sie für lang laufende Aufgaben einen Fortschrittsbalken an.
<?php
use Symfony\Component\Console\Helper\ProgressBar;
$bar = new ProgressBar($output, count($items));
$bar->start();
foreach ($items as $item) {
processItem($item);
$bar->advance();
}
$bar->finish();Table Helper
Zeigen Sie tabellarische Daten im Terminal an.
<?php
use Symfony\Component\Console\Helper\Table;
$table = new Table($output);
$table->setHeaders(["ID", "Name", "Email"])
->setRows($userData)
->render();Question Helper
Fordern Sie den Benutzer interaktiv zur Eingabe auf.
<?php
use Symfony\Component\Console\Question\Question;
$helper = $this->getHelper("question");
$question = new Question("Enter database password: ");
$question->setHidden(true);
$password = $helper->ask($input, $output, $question);Rückgabecodes
Geben Sie aus execute() Command::SUCCESS (0), Command::FAILURE (1) oder Command::INVALID (2) zurück. CI-Systeme verwenden diese Codes.
In Laravel
Laravel-Artisan-Commands erweitern Illuminate\Console\Command und verwenden anstelle von configure() die Eigenschaften $signature und $description.
Zusammenfassung
Erstellen Sie Commands, indem Sie Command erweitern. Definieren Sie Argumente und Optionen in configure(). Führen Sie die Logik in execute() aus. Verwenden Sie Hilfsmethoden für Fortschrittsbalken, Tabellen und Benutzereingaben.
Kurzer Check
Welche Ganzzahl sollte ein erfolgreicher Command aus execute() zurückgeben?
Häufig gestellte Fragen
Ist die Lektion „Console-Komponente: CLI-Befehle“ kostenlos?
Ja — der vollständige Text von „Console-Komponente: CLI-Befehle“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Console-Komponente: CLI-Befehle“?
Erstellen Sie interaktive CLI-Tools mit Symfony-Console-Command-Klassen. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um PHP Academy zu starten?
Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Console-Komponente: CLI-Befehle“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?
Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- HttpFoundation: Request und Response
- DependencyInjection-Container
- EventDispatcher: Entkoppelte Ereignisse
- Console-Komponente: CLI-Befehle