RU

Создать приложение командной строки

CLI-приложение JumPHP — это программа, которая работает в терминале: команды (todo add "Купить молоко") на Symfony Console и полноэкранные текстовые экраны (списки, поля, индикаторы прогресса, клавиатура) на 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).