Создать приложение командной строки
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).