Problem
#67 and #210 describe the target app, but there is no tree under examples/ that drives phpc lint / ExamplesCompileTest toward the full feature set. Contributors cannot see which language/stdlib issues block the reference app until someone writes the whole app.
Goal
Add examples/003-MiniWebApp/ as a lint-first skeleton: real file layout, intentional unsupported constructs documented via phpc lint --json, README listing blockers with issue links.
Proposed layout
examples/003-MiniWebApp/
README.md # curl recipes + blocker table (#192, #53, #54, …)
public/index.php # front controller (switch/foreach/includes)
src/Router.php
templates/home.php
config.php
Scope
Acceptance criteria
./phpc lint examples/003-MiniWebApp/public/index.php
prints line-accurate unsupported nodes with #192, #53, #99, etc.; README blocker table matches lint output.
Verification (local)
./script/ci-local.sh --filter LintTest
Dependencies
Non-goals
- Making the app run on VM before language issues close
- GitHub Actions workflow changes
Problem
#67 and #210 describe the target app, but there is no tree under
examples/that drivesphpc lint/ExamplesCompileTesttoward the full feature set. Contributors cannot see which language/stdlib issues block the reference app until someone writes the whole app.Goal
Add
examples/003-MiniWebApp/as a lint-first skeleton: real file layout, intentional unsupported constructs documented viaphpc lint --json, README listing blockers with issue links.Proposed layout
Scope
?route=until PATH_INFO routing is ready)phpc lint public/index.phpexits non-zero with mapped issues until blockers closeExamplesCompileTestas@group miniwebappskipped until green??, includes in sourceAcceptance criteria
prints line-accurate unsupported nodes with
#192,#53,#99, etc.; README blocker table matches lint output.Verification (local)
Dependencies
Non-goals