Vous souhaitez nous soutenir ? Devenez sponsor de l'association sur notre page Github

Distribuez vos outils CLI avec Laravel-Zero sur toutes les plateformes

Publié le 27 avril 2026 par Antoine Benevaut
Couverture de l'article Distribuez vos outils CLI avec Laravel-Zero sur toutes les plateformes

Quand on pense à PHP et Laravel, on imagine naturellement des applications web, des APIs REST ou des interfaces d'administration.

Mais saviez-vous que PHP peut également servir à créer des outils en ligne de commande et les distribuer sur les systèmes d'exploitation modernes ? Tout ça même sans y avoir installé PHP ?

Dans cet article, nous allons voir comment avec Laravel Zero, le micro framework qui vous permet de créer des outils de ligne de commandes.

Nous verrons comment compiler votre application PHP en un fichier .phar autonome. Puis comment générer des exécutables pour déployer votre application sur différents systèmes d'exploitation.

Passons à l'action !

Nouveau projet Laravel-Zero

Laravel-Zero est un micro-framework basé sur Laravel, optimisé pour créer des applications de ligne de commandes (CLI, Command-line interface).

La création d'un nouveau projet se fait avec Composer composer create-project laravel-zero/laravel-zero <project-name>, comme nous l'aurions fait pour installer Laravel. La structure du projet est elle aussi très proche :

1/
2├─ app/
3│ ├─ Commands/
4│ └─ Providers/
5├─ bootstrap/
6├─ config/
7├─ tests/
8├─ application
9├─ box.json
10└─ composer.json

Vous constaterez qu'il n'y a pas de fichier "artisan", mais un fichier "application" est disponible pour remplir la même fonction. Vous pouvez renommer ce fichier comme bon vous semble avec la commande php application app:rename <your-app-name>.

De base, le framework est allégé de plusieurs fonctionnalités intégrées à Laravel, comme Eloquent pour la base de données, le système de cache, le système de log, et d'autres …

Mais toutes ces fonctionnalités sont téléchargeables sous forme de modules Composer pour répondre à vos besoins.

1php <your-app-name> app:install <module-name>

Vous avez peut-être remarqué le fichier box.json, c'est le fichier de configuration de l'outil box qui facilite la création de fichiers PHAR, les archives PHP.

Votre application PHAR

Un fichier .phar (PHP Archive) est, selon la documentation PHP, "une application PHP complète dans un fichier unique" exécutable.

Laravel-Zero utilise Box pour créer ces archives et il ne vous suffira d'une seule commande pour compiler votre application :

1php <your-app-name> app:build <your-app-name>.phar

Une fois généré, l'archive .phar executable est disponible dans le dossier builds/. Vous pouvez immédiatement l'exécuter comme suit :

1php builds/<your-app-name>.phar

Si vous souhaitez distribuer votre application via composer sous forme d'une archive PHP, il vous suffira d'apporter quelques modifications à votre configuration box.json, puis de générer à nouveau votre exécutable.

Toutes les modifications à apporter sont disponibles pas à pas dans la documentation.

Pour que la distribution passe via Composer, il vous faudra ajouter votre archive à votre repository GIT. Vos utilisateurs pourront alors installer votre librairie et son exécutable avec Composer à leur tour pour en profiter en "local" ou en "global".

Génération des binaires multi-platforms

Le fichier .phar nécessite cependant toujours que PHP soit installé sur la machine qui va exécuter l'archive.

Pour distribuer une application autonome, nous utiliserons PHPacker qu'il faut installer dans votre projet via composer require phpacker/phpacker --dev et composer require phpacker/php-bin --dev.

PHPacker embarque l'interprète PHP ainsi que l'archive .phar de votre application dans un même fichier, et le tour est joué !

Le package phpacker/php-bin contient les binaires PHP pré-compilés pour différents systèmes d'exploitation et différentes architectures :

  • Linux : x64, ARM64
  • macOS : x64 (Intel), ARM64 (Apple Silicon)
  • Windows : x64

Une fois PHPacker installé, lancez la commande qui suit pour générer vos binaires pour toutes les plateformes :

1vendor/bin/phpacker build \
2 --src=./builds/<your-app-name>.phar \
3 --php=8.5 \
4 all

Vous pouvez aussi cibler des plateformes spécifiques en remplaçant l'argument "all" par une ou plusieurs plateformes séparées par une virgule :

1vendor/bin/phpacker build --src=./builds/app.phar --php=8.5 linux-x64,windows-x64

Les binaires produits sont disponibles dans le répertoire builds/.

Cette fois-ci, ces binaires peuvent être distribués et exécutés sans aucune installation de PHP sur une machine.

Pour les curieux qui souhaitent plus de détails sur le fonctionnement de PHPacker, Jean-François Lépine a soulevé le capot de la SAPI, un indispensable pour ce package lors du Forum PHP 2025.

Vous savez maintenant tout ce qu'il y a à savoir pour distribuer votre application PHP au plus grand nombre d'utilisateurs, sans PHP !

Antoine Benevaut avatar

Écrit par

Antoine Benevaut

PHP & Laravel Consultant - Lead Developer, Paris / Passionate / Cat lover / #laravel 😍

1 commentaire
Mathieu De Gracia, Il y a 2 heures

phpacker est quand même assez magique, aucune configuration, on transmet simplement la source, la version de php, et les plateformes ... et paf, on a notre exécutable !

Tu veux commenter ? Crée un compte ou connecte-toi.

A lire

Autres articles de la même catégorie