コマンドラインアプリを作る
JumPHP の CLI アプリ はターミナルで動くプログラムです。Symfony Console で書く コマンド(todo add "牛乳を買う")と、symfony/tui による 全画面のテキスト画面(リスト、入力欄、進捗バー、キーボード操作)を持てます。同じプロジェクトから Linux・Windows・macOS 用の実行ファイルができます。
プロジェクトを作る
JumPHP IDE で New Project → CLI app。コマンドラインでは:
bin/jumphp cli:new todo "Todo"
bin/jumphp install todo
サンプルはタスクリストです:src/Main.php(アプリとそのコマンド)、src/Command/(コマンドごとに 1 クラス)、src/Ui/(全画面の画面)。
実行とテスト
bin/jumphp run todo # 全画面の画面(このターミナルで)
bin/jumphp run todo add "牛乳を買う" # コマンド
bin/jumphp test todo # php -l、phpstan、PHPUnit
bin/jumphp shot todo 2 # 画面をテキストで:var/screenshots/screen.txt
コマンドなしで起動すると、出力がターミナルなら画面を開き、ファイルや別のプログラムへの出力なら単純な一覧を表示します。スクリプトでも使えます。
テストはコマンド(ApplicationTester)と、仮想ターミナル(VirtualTerminal)上の画面を実行し、キーを押してユーザーに見える内容を読み取ります。
データ
アプリはデータをユーザーのフォルダ(~/.local/share/<id>、%APPDATA%\<id>、~/Library/Application Support/<id>)に、開発中は var/ に保存します。
配布する
bin/jumphp export:standalone todo --linux --windows --macos
システムごとに 1 つの実行ファイルで、インストール不要です。Windows ではコンソールプログラムになります。bin/jumphp installer todo でインストーラーも作れます(Windows、Linux)。
Windows ではコマンドはどのコンソールでも動きます。全画面の画面には stty のあるターミナル(WSL、Git Bash)が必要です。