Criar uma aplicação de linha de comando
Uma aplicação CLI JumPHP é um programa que vive no terminal: comandos (todo add "Comprar leite") escritos com Symfony Console e ecrãs completos em texto (listas, campos, barras de progresso, teclado) com symfony/tui. O mesmo projeto dá um executável para Linux, Windows e macOS.
Criar o projeto
No JumPHP IDE: New Project e depois CLI app. Na linha de comando:
bin/jumphp cli:new todo "Todo"
bin/jumphp install todo
O exemplo é uma lista de tarefas: src/Main.php (a aplicação e os seus comandos), src/Command/ (uma classe por comando), src/Ui/ (os ecrãs completos).
Executar e testar
bin/jumphp run todo # o ecrã completo, neste terminal
bin/jumphp run todo add "Comprar leite" # um comando
bin/jumphp test todo # php -l, phpstan, PHPUnit
bin/jumphp shot todo 2 # o ecrã em texto: var/screenshots/screen.txt
Sem comando, a aplicação abre o seu ecrã quando a saída é um terminal e mostra uma lista simples quando vai para um ficheiro ou outro programa: continua utilizável em scripts.
Os testes executam os comandos (ApplicationTester) e os ecrãs num terminal virtual (VirtualTerminal): carregam em teclas e leem o que o utilizador veria.
Os dados
A aplicação guarda os seus dados na pasta do utilizador (~/.local/share/<id>, %APPDATA%\<id>, ~/Library/Application Support/<id>), e em var/ durante o desenvolvimento.
Distribuir
bin/jumphp export:standalone todo --linux --windows --macos
Um executável por sistema, nada a instalar; no Windows é um programa de consola. bin/jumphp installer todo também cria instaladores (Windows, Linux).
No Windows os comandos funcionam em qualquer consola; os ecrãs completos precisam de um terminal com stty (WSL, Git Bash).