Utilitaires CLI en PHP : pourquoi n'avez-vous pas encore écrit votre outil console ?
\n\nImaginez : vous êtes dans votre terminal, vous lancez une seule commande — et en une seconde, vous obtenez un rapport, toutes vos images sont converties ou votre projet est configuré sur un nouveau serveur. Sans navigateur, sans souris, sans gestes superflus. Ça ressemble à de la magie ? Non, ce sont de simples utilitaires CLI en PHP.
\n\nDe nombreux développeurs considèrent PHP uniquement comme un « langage web ». Pourtant, PHP est un excellent outil pour créer des applications console. Il dispose d'une gestion intégrée des flux d'entrée-sortie, d'un traitement pratique des arguments et, bien sûr, de bibliothèques puissantes comme Symfony Console. Dans cet article, nous allons voir comment créer un script console en PHP de zéro — d'un simple echo à un outil complet avec couleurs et barre de progression.
\n\nSi vous en avez assez des tâches répétitives à faire manuellement, si vous voulez automatiser votre routine et vous sentir comme un vrai hacker — vous êtes au bon endroit. C'est parti !
\n\nQu'est-ce qu'un utilitaire CLI et pourquoi en avez-vous besoin ?
\n\nCLI (Command Line Interface) est un programme qui fonctionne en ligne de commande. Il accepte des arguments, exécute des actions et affiche le résultat. Contrairement aux applications web, il n'y a pas de HTML, CSS ou JavaScript. Seulement du code pur et un terminal.
\n\nPourquoi écrire des utilitaires CLI en PHP ? Voici quelques scénarios :
\n\n- \n
- Migrations de données — transfert d'informations depuis un CSV vers une base de données. \n
- Génération de rapports — collecte de statistiques et création de PDF ou Excel. \n
- Automatisation du déploiement — déploiement d'un projet sur un serveur en une seule commande. \n
- Analyse et traitement de fichiers — conversion, compression, renommage. \n
- Tâches CRON — opérations régulières exécutées selon un planning. \n
Et surtout — le développement d'outils console en PHP ne nécessite pas d'infrastructure complexe. Un seul fichier et quelques lignes de code suffisent.
\n\nDémarrage : un script CLI minimal en PHP
\n\nOuvrez votre terminal, créez un fichier hello.php et écrivez :
<?php\necho "Bonjour, terminal !\\n";\n\n\nExécutez :
\n\nphp hello.php\n\n\nVous verrez :
\n\nBonjour, terminal !\n\nFélicitations ! Vous venez d'écrire votre premier utilitaire CLI en PHP. Mais rendons-le utile. Ajoutons la gestion des arguments de ligne de commande.
\n\nTravailler avec les arguments : $argv et $argc
\n\nPHP fournit deux tableaux superglobaux pour travailler avec la console : $argv (liste des arguments) et $argc (nombre d'arguments). Le premier argument (index 0) est le nom du script lui-même.
Exemple :
\n\n<?php\nif ($argc < 2) {\n echo "Utilisation : php hello.php [nom]\\n";\n exit(1);\n}\n\n$name = $argv[1];\necho "Bonjour, $name !\\n";\n\n\nExécution :
\n\nphp hello.php Alex\n\n\nRésultat :
\n\nBonjour, Alex !\n\nDéjà intéressant. Mais pour des projets sérieux, cette approche n'est pas pratique. Il faut des arguments nommés, des flags, des valeurs par défaut. C'est là que la bibliothèque Symfony Console entre en jeu.
\n\nSymfony Console : une base solide pour les utilitaires CLI en PHP
\n\nSymfony Console est le standard de facto pour créer des applications console en PHP. Avec elle, vous pouvez facilement ajouter :
\n\n- \n
- Des arguments et options nommés \n
- Un affichage coloré \n
- Des barres de progression \n
- Une validation des entrées \n
- Un autoloading des commandes \n
Installation via Composer :
\n\ncomposer require symfony/console\n\n\nMaintenant, créons un utilitaire CLI en PHP complet — un générateur de mots de passe.
\n\nÉcrire une commande pour générer des mots de passe
\n\nStructure du pro