Framework CLI pour PHP (Symfony Console)

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce qu'un framework CLI pour PHP ?

Un framework CLI (Command Line Interface) pour PHP est un outil qui permet aux développeurs de créer des commandes console, des scripts et des utilitaires en langage PHP. La solution la plus populaire et la plus puissante dans ce domaine est le composant Symfony Console. Il fournit une architecture prête à l'emploi pour gérer les arguments, les options, l'affichage de texte en couleur, les invites interactives et la génération automatique d'aide.

Pourquoi un framework CLI ?

Dans le développement moderne, les commandes console sont utilisées pour automatiser des tâches : migrations de base de données, nettoyage du cache, génération de code, exécution de tests, traitement de files d'attente et bien plus encore. Sans framework, vous devriez analyser manuellement les arguments de la ligne de commande, gérer les erreurs et formater la sortie. Symfony Console rend ce processus simple et standardisé.

Comment installer ?

L'installation se fait via Composer. Ouvrez un terminal à la racine de votre projet et exécutez :

composer require symfony/console

Ensuite, vous pourrez utiliser toutes les fonctionnalités du framework dans votre application PHP.

Fonctionnalités principales

  • Création de commandes : Chaque commande est une classe distincte héritant de Command.
  • Arguments et options : Définissez facilement des paramètres obligatoires et facultatifs, ainsi que des options avec des valeurs par défaut.
  • Sortie colorée : Utilisez des styles pour mettre en évidence les erreurs, les avertissements et les messages de succès.
  • Interactivité : Prise en charge des questions, de la sélection dans une liste et de l'autocomplétion de la saisie.
  • Aide automatique : Lors de l'exécution d'une commande avec le drapeau --help, une documentation complète est générée.
  • Tableaux et barres de progression : Affichage pratique des données sous forme de tableaux et d'indicateurs de progression.

Exemple de code PHP

Créons une commande simple qui salue l'utilisateur :

// src/Command/GreetCommand.phpnamespace App\\Command;

use Symfony\\Component\\Console\\Command\\Command;use Symfony\\Component\\Console\\Input\\InputArgument;use Symfony\\Component\\Console\\Input\\InputInterface;use Symfony\\Component\\Console\\Output\\OutputInterface;

class GreetCommand extends Command{ protected static $defaultName = 'app:greet';

protected function configure() { $this ->setDescription('Salue l\\'utilisateur') ->addArgument('name', InputArgument::REQUIRED, 'Nom de l\\'utilisateur'); }

protected function execute(InputInterface $input, OutputInterface $output) { $name = $input->getArgument('name'); $output->writeln('Bonjour, ' . $name . ' !'); return Command::SUCCESS; }}

Exécutez la commande dans le terminal :

php bin/console app:greet Jean

Vous verrez : Bonjour, Jean !

Quand l'utiliser

Symfony Console est idéal pour tout projet PHP nécessitant la création d'utilitaires console : des scripts simples aux applications CLI complexes avec des dizaines de commandes. C'est un outil indispensable pour le DevOps, l'automatisation du déploiement et l'administration. Si vous travaillez avec les frameworks Symfony, Laravel (via Artisan) ou toute autre application PHP, utilisez ce composant pour créer un code propre et maintenable.

Recommendations