KO

TodoJumPhp

davidnurdin 제작 · 데모와 실험
아직 평가가 없어요
▶ 열기 💬 후기 소스 🕘 버전 편집 GitHub
games/todojumphp / AGENTS.md · commit 8bfe7cc
# todojumphp — notes for agentsThis is a JumPHP **CLI app**: it lives in the terminal (no window, no SDL). Commands are Symfony Console commands,full-screen screens are symfony/tui widgets. **Read `../../docs/cli.md` first.**## Checklist```bashbin/jumphp test todojumphp                        # php -l + phpstan + phpunit (commands, screens on a VirtualTerminal) + smokeJUMPHP_KEYS='[[1,"a"],[1.3,"Milk"],[1.6,"\r"]]' bin/jumphp shot todojumphp 2.5   # the screen as text: read itbin/jumphp run todojumphp add "Something"         # a command (bin/jumphp run todojumphp: the full-screen screen)bin/jumphp export:standalone todojumphp --linux --windows --macos   # one executable per system, in dist/standalone/```## This app- **What it is**: ...- **Entry**: `app.php` -> `App\Main::boot($root)->run()` (the exported executable calls the same).- **Commands**: `src/Command/` (one class each, `#[AsCommand]`), registered in `src/Main.php`.- **Screens**: `src/Ui/` (symfony/tui: `Tui`, `SelectListWidget`, `InputWidget`, `TextWidget`...); tests drive them on a  `VirtualTerminal` (`tests/TaskScreenTest.php`).- **Data**: `Main::boot()` gives the data folder: `var/` here, the user's data folder once exported (`JUMPHP_VAR`).## Rules- No SDL / engine scenes here; never `sleep()` in a screen (the TUI has its own loop: `scheduleInterval()`).- Full-screen screens need a terminal: when the output is not one (a pipe), fall back to plain output (`Main`).- Windows: commands work in any console; full-screen screens need a terminal with `stty` (Windows Terminal + Git  Bash / WSL): test the commands there, keep everything reachable as commands.