- Component should scale: from small web app to huge complex web projects
- Configuration over convention but sensible defaults
- Should be extendible with classic OOP measures: e.g.
Composites
(GOF 163) could be used for complex views and complex routes - Constructor based dependency injection for all the classes
- No singletons, no registries, multiple
Front Controllers
(P of EAA 344) should live easily together - Basic structure fully defined in interfaces
- Clear separation of packages
EPHPMVC\Standard
is where the most simple example implementations live- HTTP protocol specific implementations live in
EPHPMVC\HTTP
- Protocol agnostic: should be usable for Web, Mail processing, CLI utilities
- Use closures as view helpers
- View helpers are conceptually the same as template variables
- Use PHP as the default template engine (no Smarty, no nothing)
- Implement an A/B split testing route
- Implement a CLI request/response/route triangle
- Implement XML processing request/response/route triangle. Routing expressions specified as XPath Queries
- Implement router to use
Page Controller
(P of EAA 333) pattern