Composant Console : commandes CLI
Créer des outils CLI interactifs avec les classes Command de Symfony Console.
Composant Console : commandes CLI est une leçon PHP Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage PHP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours PHP Academy comprend 4 leçons au total.
Qu’est-ce que le composant Console de Symfony ?
Symfony Console vous permet de créer en PHP des applications CLI structurées et testables, avec des options, des arguments, des barres de progression et une sortie colorisée.
Installation
Installez le composant.
$ composer require symfony/consoleCréation d’une commande
Étendez Command et redéfinissez configure() et 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;
}
}Configuration de l’application
Enregistrez les commandes dans une Application, puis exécutez-la.
<?php
use Symfony\Component\Console\Application;
$app = new Application("MyApp", "1.0.0");
$app->add(new GreetCommand());
$app->run();Arguments et options
Les arguments sont positionnels (obligatoires ou facultatifs). Les options sont des indicateurs nommés (--name=value ou -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");Assistants de sortie
Formatez la sortie avec des méthodes d’assistance.
<?php
$output->writeln("<info>Success!</info>");
$output->writeln("<error>Error occurred</error>");
$output->writeln("<comment>Processing...</comment>");ProgressBar
Affichez une barre de progression pour les tâches longues.
<?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();Assistant de tableau
Affichez des données tabulaires dans le terminal.
<?php
use Symfony\Component\Console\Helper\Table;
$table = new Table($output);
$table->setHeaders(["ID", "Name", "Email"])
->setRows($userData)
->render();Assistant de question
Demandez une saisie à l’utilisateur de manière interactive.
<?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);Codes de retour
Renvoyez Command::SUCCESS (0), Command::FAILURE (1) ou Command::INVALID (2) depuis execute(). Les systèmes d’intégration continue utilisent ces codes.
Dans Laravel
Les commandes Artisan de Laravel étendent Illuminate\Console\Command et utilisent les propriétés $signature et $description au lieu de configure().
Résumé
Créez des commandes en étendant Command. Définissez les arguments et les options dans configure(). Exécutez la logique dans execute(). Utilisez les assistants pour les barres de progression, les tableaux et les invites utilisateur.
Vérification rapide
Quel entier une commande réussie doit-elle renvoyer depuis execute() ?
Questions Fréquemment Posées
La leçon « Composant Console : commandes CLI » est-elle gratuite ?
Oui — le texte complet de « Composant Console : commandes CLI » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours PHP Academy, passe à CoddyKit PRO. Le cours PHP Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Composant Console : commandes CLI » ?
Créer des outils CLI interactifs avec les classes Command de Symfony Console. Tu pratiques PHP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer PHP Academy ?
Aucune expérience préalable n'est requise. PHP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Composant Console : commandes CLI » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon PHP Academy ?
Oui. Chaque leçon PHP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- HttpFoundation : requête et réponse
- Conteneur DependencyInjection
- EventDispatcher : événements découplés
- Composant Console : commandes CLI