FR

Créer une application en ligne de commande

Une application CLI JumPHP est un programme qui vit dans le terminal : des commandes (todo add "Acheter du lait") écrites avec Symfony Console, et des écrans plein écran en texte (listes, champs, barres de progression, clavier) avec symfony/tui. Le même projet donne un exécutable pour Linux, Windows et macOS.

Créer le projet

Dans le JumPHP IDE : New Project, puis CLI app. En ligne de commande :

bin/jumphp cli:new todo "Todo"
bin/jumphp install todo

L'exemple est une liste de tâches : src/Main.php (l'application et ses commandes), src/Command/ (une classe par commande), src/Ui/ (les écrans plein écran).

Lancer et tester

bin/jumphp run todo                          # l'écran plein écran, dans ce terminal
bin/jumphp run todo add "Acheter du lait"        # une commande
bin/jumphp test todo                         # php -l, phpstan, PHPUnit
bin/jumphp shot todo 2                       # l'écran en texte : var/screenshots/screen.txt

Sans commande, l'application ouvre son écran quand la sortie est un terminal, et affiche une simple liste quand elle va dans un fichier ou un autre programme : elle reste utilisable dans des scripts.

Les tests jouent les commandes (ApplicationTester) et les écrans sur un terminal virtuel (VirtualTerminal) : ils tapent des touches et lisent ce que l'utilisateur verrait.

Les données

L'application range ses données dans le dossier de l'utilisateur (~/.local/share/<id>, %APPDATA%\<id>, ~/Library/Application Support/<id>), et dans var/ pendant le développement.

Distribuer

bin/jumphp export:standalone todo --linux --windows --macos

Un exécutable par système, sans rien à installer ; sous Windows, c'est un programme console. bin/jumphp installer todo en fait aussi des installeurs (Windows, Linux).

Sous Windows, les commandes marchent dans n'importe quelle console ; les écrans plein écran demandent un terminal qui a stty (WSL, Git Bash).