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