Eine Kommandozeilen-App erstellen
Eine JumPHP-CLI-App ist ein Programm, das im Terminal lebt: Befehle (todo add "Milch kaufen") mit Symfony Console und Vollbild-Textbildschirme (Listen, Felder, Fortschrittsbalken, Tastatur) mit symfony/tui. Dasselbe Projekt ergibt je eine ausführbare Datei für Linux, Windows und macOS.
Das Projekt anlegen
In der JumPHP IDE: New Project, dann CLI app. Auf der Kommandozeile:
bin/jumphp cli:new todo "Todo"
bin/jumphp install todo
Das Beispiel ist eine Aufgabenliste: src/Main.php (die Anwendung und ihre Befehle), src/Command/ (eine Klasse pro Befehl), src/Ui/ (die Vollbildschirme).
Starten und testen
bin/jumphp run todo # der Vollbildschirm, in diesem Terminal
bin/jumphp run todo add "Milch kaufen" # ein Befehl
bin/jumphp test todo # php -l, phpstan, PHPUnit
bin/jumphp shot todo 2 # der Bildschirm als Text: var/screenshots/screen.txt
Ohne Befehl öffnet die App ihren Bildschirm, wenn die Ausgabe ein Terminal ist, und gibt eine einfache Liste aus, wenn sie in eine Datei oder ein anderes Programm geht: Sie bleibt in Skripten nutzbar.
Die Tests spielen die Befehle (ApplicationTester) und die Bildschirme auf einem virtuellen Terminal (VirtualTerminal): Sie drücken Tasten und lesen, was der Benutzer sähe.
Die Daten
Die App legt ihre Daten im Ordner des Benutzers ab (~/.local/share/<id>, %APPDATA%\<id>, ~/Library/Application Support/<id>), während der Entwicklung in var/.
Verteilen
bin/jumphp export:standalone todo --linux --windows --macos
Eine ausführbare Datei pro System, nichts zu installieren; unter Windows ist es ein Konsolenprogramm. bin/jumphp installer todo erstellt auch Installer (Windows, Linux).
Unter Windows funktionieren die Befehle in jeder Konsole; die Vollbildschirme brauchen ein Terminal mit stty (WSL, Git Bash).