Console-komponenten: CLI-kommandoer
Opbyg interaktive CLI-værktøjer med Symfony Console Command-klasser.
Console-komponenten: CLI-kommandoer er en gratis PHP Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i PHP Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. PHP Academy-kurset indeholder 4 lektioner i alt.
Hvad er Symfony Console-komponenten?
Symfony Console lader dig opbygge strukturerede, testbare CLI-programmer i PHP med indstillinger, argumenter, statusbjælker og farvelagt uddata.
Installation
Installer komponenten.
$ composer require symfony/consoleOprettelse af en kommando
Udvid Command, og tilsidesæt configure() og 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;
}
}Opsætning af en applikation
Registrer kommandoer i en Application, og kør den.
<?php
use Symfony\Component\Console\Application;
$app = new Application("MyApp", "1.0.0");
$app->add(new GreetCommand());
$app->run();Argumenter og indstillinger
Argumenter er positionsbestemte (påkrævede eller valgfri). Indstillinger er navngivne flag (--name=value eller -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");Hjælpeværktøjer til uddata
Formater uddata med hjælpemetoder.
<?php
$output->writeln("<info>Success!</info>");
$output->writeln("<error>Error occurred</error>");
$output->writeln("<comment>Processing...</comment>");ProgressBar
Vis en statusbjælke for opgaver, der kører længe.
<?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();Tabelhjælper
Vis tabeldata i terminalen.
<?php
use Symfony\Component\Console\Helper\Table;
$table = new Table($output);
$table->setHeaders(["ID", "Name", "Email"])
->setRows($userData)
->render();Spørgsmålshjælper
Bed brugeren om inddata interaktivt.
<?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);Returkoder
Returner Command::SUCCESS (0), Command::FAILURE (1) eller Command::INVALID (2) fra execute(). CI-systemer bruger disse koder.
I Laravel
Laravel Artisan-kommandoer udvider Illuminate\Console\Command og bruger egenskaberne $signature og $description i stedet for configure().
Opsummering
Opret kommandoer ved at udvide Command. Definer argumenter og indstillinger i configure(). Kør logikken i execute(). Brug hjælpere til statusbjælker, tabeller og brugerforespørgsler.
Hurtigt tjek
Hvilket heltal skal en vellykket kommando returnere fra execute()?
Lær PHP med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 49
- Lektioner
- 195
Ofte stillede spørgsmål
Er lektionen “Console-komponenten: CLI-kommandoer” gratis?
Ja — hele teksten til “Console-komponenten: CLI-kommandoer” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af PHP Academy-kurset, skal du opgradere til CoddyKit PRO. PHP Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Console-komponenten: CLI-kommandoer”?
Opbyg interaktive CLI-værktøjer med Symfony Console Command-klasser. Du øver dig i PHP Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på PHP Academy?
Der kræves ingen tidligere erfaring. PHP Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Console-komponenten: CLI-kommandoer”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne PHP Academy-lektion?
Ja. Alle PHP Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- HttpFoundation: Request og Response
- DependencyInjection-containeren
- EventDispatcher: Afkoblede events
- Console-komponenten: CLI-kommandoer