KO

명령줄 앱 만들기

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/(명령마다 클래스 하나), 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

시스템마다 실행 파일 하나, 설치할 것이 없습니다. Windows에서는 콘솔 프로그램입니다. bin/jumphp installer todo로 설치 프로그램도 만들 수 있습니다(Windows, Linux).

Windows에서 명령은 어느 콘솔에서나 동작합니다. 전체 화면에는 stty가 있는 터미널(WSL, Git Bash)이 필요합니다.