Utilitaires CLI en PHP : créez vos outils console de zéro

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

Utilitaires CLI en PHP : pourquoi n'avez-vous pas encore écrit votre outil console ?

\n\n

Imaginez : 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\n

De 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\n

Si 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\n

Qu'est-ce qu'un utilitaire CLI et pourquoi en avez-vous besoin ?

\n\n

CLI (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\n

Pourquoi é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
\n\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\n

Démarrage : un script CLI minimal en PHP

\n\n

Ouvrez votre terminal, créez un fichier hello.php et écrivez :

\n\n
<?php\necho "Bonjour, terminal !\\n";\n
\n\n

Exécutez :

\n\n
php hello.php\n
\n\n

Vous verrez :

\n\n
Bonjour, terminal !
\n\n

Fé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\n

Travailler avec les arguments : $argv et $argc

\n\n

PHP 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.

\n\n

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\n

Exécution :

\n\n
php hello.php Alex\n
\n\n

Résultat :

\n\n
Bonjour, Alex !
\n\n

Dé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\n

Symfony Console : une base solide pour les utilitaires CLI en PHP

\n\n

Symfony 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
\n\n

Installation via Composer :

\n\n
composer require symfony/console\n
\n\n

Maintenant, 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\n

Structure du pro

Blogs

Book Recommendations