## Problem **#67** defines the reference app. This issue specifies the **routing architecture** so implementers know the target before writing `003-MiniWebApp`. ## Goal Document and implement a minimal front-controller pattern: ``` public/index.php → router → handlers/ templates/*.php → include with extract() ``` ## Routes (minimum) | Method | Path | Behavior | |--------|------|----------| | GET | `/` | Home template | | GET | `/hello?name=` | Greet (**#001** parity) | | POST | `/contact` | Form validate + thank-you | | GET | `/api/status` | JSON (**#61**) | ## Tasks - [ ] Create `examples/003-MiniWebApp/` skeleton (blocked on **#67**) - [ ] Use PATH_INFO (**#121** ✅) or query `?route=` - [ ] Shared layout template (include **#54**) - [ ] CSRF token optional (**#123**) - [ ] README with curl recipes - [ ] Run matrix: VM serve, JIT serve (**#207**), AOT CGI (**#50**) ## Acceptance criteria All routes pass PHPT/web tests in **#68**. ## Dependencies - **#67**, **#53**, **#54**, **#61**, **#124**, **#49** ## Files - `examples/003-MiniWebApp/`
Problem
#67 defines the reference app. This issue specifies the routing architecture so implementers know the target before writing
003-MiniWebApp.Goal
Document and implement a minimal front-controller pattern:
Routes (minimum)
//hello?name=/contact/api/statusTasks
examples/003-MiniWebApp/skeleton (blocked on Reference app: examples/003-MiniWebApp (router, templates, forms) #67)?route=Acceptance criteria
All routes pass PHPT/web tests in #68.
Dependencies
Files
examples/003-MiniWebApp/