PHP Academy · Lektion

Console-komponenten: CLI-kommandoer

Opbyg interaktive CLI-værktøjer med Symfony Console Command-klasser.

Lektion 4 af 413 trin

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/console

Oprettelse 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()?

Gratis at komme i gang

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

  1. HttpFoundation: Request og Response
  2. DependencyInjection-containeren
  3. EventDispatcher: Afkoblede events
  4. Console-komponenten: CLI-kommandoer
← Tilbage til PHP Academy