Komut satırı uygulaması yapmak
Bir JumPHP CLI uygulaması terminalde yaşayan bir programdır: Symfony Console ile yazılmış komutlar (todo add "Süt al") ve symfony/tui ile tam ekran metin ekranları (listeler, alanlar, ilerleme çubukları, klavye). Aynı proje Linux, Windows ve macOS için birer çalıştırılabilir dosya verir.
Projeyi oluşturmak
JumPHP IDE'de: New Project, ardından CLI app. Komut satırında:
bin/jumphp cli:new todo "Todo"
bin/jumphp install todo
Örnek bir görev listesidir: src/Main.php (uygulama ve komutları), src/Command/ (komut başına bir sınıf), src/Ui/ (tam ekran ekranlar).
Çalıştırmak ve test etmek
bin/jumphp run todo # tam ekran ekran, bu terminalde
bin/jumphp run todo add "Süt al" # bir komut
bin/jumphp test todo # php -l, phpstan, PHPUnit
bin/jumphp shot todo 2 # ekran metin olarak: var/screenshots/screen.txt
Komut verilmezse uygulama, çıktı bir terminalse ekranını açar; çıktı bir dosyaya ya da başka bir programa gidiyorsa düz bir liste yazar: betiklerde kullanılabilir kalır.
Testler komutları (ApplicationTester) ve ekranları sanal bir terminalde (VirtualTerminal) oynatır: tuşlara basar ve kullanıcının göreceğini okur.
Veriler
Uygulama verilerini kullanıcının klasöründe tutar (~/.local/share/<id>, %APPDATA%\<id>, ~/Library/Application Support/<id>), geliştirme sırasında ise var/ içinde.
Dağıtmak
bin/jumphp export:standalone todo --linux --windows --macos
Sistem başına bir çalıştırılabilir dosya, kurulacak bir şey yok; Windows'ta bir konsol programıdır. bin/jumphp installer todo ayrıca yükleyiciler de yapar (Windows, Linux).
Windows'ta komutlar ve tam ekran ekranlar her konsolda çalışır (Komut İstemi, PowerShell, Windows Terminal).
jumphp.net üzerinde
jumphp.net'te yayınlanan uygulama sayfadaki bir terminalde çalışır: komutları oraya yazılır ve gerçek bir terminaldeki gibi yanıt verir. Soruları yazılan yanıtı bekler (Ctrl+C iptal eder), tam ekran ekranları tuşları tek tek alır (oklar, Enter, Escape). İskelet bunu zaten yapar: JUMPHP_WEB_TERMINAL 1 olduğunda WindowsTerminal::create() tarafından seçilen src/Ui/WebTerminal.php ve src/Ui/WebLoop.php. Verileri (var/) ziyaretçinin tarayıcısında kalır.