Console-komponenten: CLI-kommandon
Bygg interaktiva CLI-verktyg med klasserna i Symfony Console Command.
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/consoleSkapa 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()?
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
- HttpFoundation: förfrågan och svar
- DependencyInjection-containern
- EventDispatcher: frikopplade händelser
- Console-komponenten: CLI-kommandon