TR

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.