NL

Een opdrachtregel-app maken

Een JumPHP-CLI-app is een programma dat in de terminal leeft: opdrachten (todo add "Melk kopen") geschreven met Symfony Console, en schermvullende tekstschermen (lijsten, velden, voortgangsbalken, toetsenbord) met symfony/tui. Hetzelfde project levert één uitvoerbaar bestand voor Linux, Windows en macOS.

Het project maken

In de JumPHP IDE: New Project, dan CLI app. Op de opdrachtregel:

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

Het voorbeeld is een takenlijst: src/Main.php (de applicatie en haar opdrachten), src/Command/ (één klasse per opdracht), src/Ui/ (de schermvullende schermen).

Starten en testen

bin/jumphp run todo                          # het schermvullende scherm, in deze terminal
bin/jumphp run todo add "Melk kopen"        # een opdracht
bin/jumphp test todo                         # php -l, phpstan, PHPUnit
bin/jumphp shot todo 2                       # het scherm als tekst: var/screenshots/screen.txt

Zonder opdracht opent de app haar scherm als de uitvoer een terminal is, en toont ze een eenvoudige lijst als die naar een bestand of ander programma gaat: ze blijft bruikbaar in scripts.

De tests spelen de opdrachten (ApplicationTester) en de schermen op een virtuele terminal (VirtualTerminal): ze typen toetsen en lezen wat de gebruiker zou zien.

De gegevens

De app bewaart haar gegevens in de map van de gebruiker (~/.local/share/<id>, %APPDATA%\<id>, ~/Library/Application Support/<id>), en in var/ tijdens het ontwikkelen.

Verspreiden

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

Eén uitvoerbaar bestand per systeem, niets te installeren; op Windows is het een consoleprogramma. bin/jumphp installer todo maakt er ook installers van (Windows, Linux).

Op Windows werken de opdrachten in elke console; de schermvullende schermen hebben een terminal met stty nodig (WSL, Git Bash).