You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
phpc lint only accepts a single entry file (bin/lint.php). Multi-file apps (#67, #246examples/003-MiniWebApp/) need a directory-wide report listing every unsupported construct with issue links — not one file at a time.
#243 gates shipped examples in CI but does not define recursive lint for future MiniWebApp trees.
Problem
phpc lintonly accepts a single entry file (bin/lint.php). Multi-file apps (#67, #246examples/003-MiniWebApp/) need a directory-wide report listing every unsupported construct with issue links — not one file at a time.#243 gates shipped examples in CI but does not define recursive lint for future MiniWebApp trees.
Goal
phpc lint --all examples/003-MiniWebApp # or: phpc lint --project examples/003-MiniWebApp/public/index.phpWalks
include/requirewith string-literal paths (best effort), prints aggregated issues, exits non-zero if any file fails.Implementation hints
bin/lint.php/lib/Lint/Linter.php: add--all <dir>or--project <entry>flag.LintCompiler+UnsupportedRegistry(docs/unsupported-syntax.md).include/requirepaths relative to file dir; skip dynamic includes with warning.--json: emit array of{file, line, kind, issue}for Reference: MiniWebApp lint-first skeleton (examples/003-MiniWebApp) #246 README blocker table generation.test/unit/PhpcLintProjectTest.phponexamples/000-HelloWorld(expect exit 0).Acceptance criteria
docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \ ./phpc lint --all examples/003-MiniWebAppWhen #246 scaffold exists: output lists
#192,#53,#99, etc. with file:line; exit code 1 until blockers close.Verification (local only)
No GitHub Actions required.
Dependencies
--allfor 003 later)Links
lib/Lint/,docs/unsupported-syntax.md, 🗺️ ROADMAP: Compile a small PHP web application (living document) #78 ROADMAP Phase 0