PHP Academy · Lektion

Console-komponenten: CLI-kommandon

Bygg interaktiva CLI-verktyg med klasserna i Symfony Console Command.

Lektion 4 av 413 steg

Console-komponenten: CLI-kommandon är en gratis lektion i PHP Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för PHP Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i PHP Academy innehåller totalt 4 lektioner.

Vad är Symfony Console-komponenten?

Symfony Console låter dig bygga strukturerade och testbara CLI-applikationer i PHP med alternativ, argument, förloppsindikatorer och färglagd utdata.

Installera

Installera komponenten.

$ composer require symfony/console

Skapa ett kommando

Ärv från Command och åsidosätt configure() och 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;
    }
}

Konfigurera applikationen

Registrera kommandon i en Application och kör den.

<?php
use Symfony\Component\Console\Application;

$app = new Application("MyApp", "1.0.0");
$app->add(new GreetCommand());
$app->run();

Argument och alternativ

Argument är positionsbaserade (obligatoriska eller valfria). Alternativ är namngivna flaggor (--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älpmedel för utdata

Formatera utdata med hjälpmetoder.

<?php
$output->writeln("<info>Success!</info>");
$output->writeln("<error>Error occurred</error>");
$output->writeln("<comment>Processing...</comment>");

ProgressBar

Visa en förloppsindikator för långvariga uppgifter.

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

Tabellhjälp

Visa tabelldata i terminalen.

<?php
use Symfony\Component\Console\Helper\Table;

$table = new Table($output);
$table->setHeaders(["ID", "Name", "Email"])
      ->setRows($userData)
      ->render();

Frågehjälp

Be användaren om indata 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

Returnera Command::SUCCESS (0), Command::FAILURE (1) eller Command::INVALID (2) från execute(). CI-system använder dessa koder.

I Laravel

Laravel Artisan-kommandon ärver från Illuminate\Console\Command och använder egenskaperna $signature och $description i stället för configure().

Sammanfattning

Skapa kommandon genom att ärva från Command. Definiera argument och alternativ i configure(). Kör logiken i execute(). Använd hjälpmedel för förloppsindikatorer, tabeller och användarfrågor.

Snabbkontroll

Vilket heltal ska ett lyckat kommando returnera från execute()?

Gratis att börja

Lär dig PHP med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
49
Lektioner
195

Vanliga frågor

Är lektionen ”Console-komponenten: CLI-kommandon” gratis?

Ja – hela texten till ”Console-komponenten: CLI-kommandon” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i PHP Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i PHP Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Console-komponenten: CLI-kommandon”?

Bygg interaktiva CLI-verktyg med klasserna i Symfony Console Command. Ni övar på PHP Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig PHP Academy?

Du behöver inga förkunskaper. Utbildningen i PHP Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Console-komponenten: CLI-kommandon”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här PHP Academy-lektionen?

Ja. Varje PHP Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. HttpFoundation: förfrågan och svar
  2. DependencyInjection-containern
  3. EventDispatcher: frikopplade händelser
  4. Console-komponenten: CLI-kommandon
← Tillbaka till PHP Academy