rooter.php
Application router
Purpose
- Resolve the controller class from the
pagequery parameter without a static map. - Accepted formats for
page: snake_case, kebab-case, camelCase. - Resolution rule: StudlyCase(page) + "Controller" (e.g. "legal-terms" → "LegalTermsController").
- If the class does not exist: respond with HTTP 404.
Convention
- Create controllers named <Feature>Controller inside modules/controllers/* (autoloaded paths).
- No router edits are required when adding a new controller that follows this convention.