A simple, yet very much extendable MVC implementation for PHP 5.3
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


EPHPMVC: A small but extendable MVC implementation for PHP 5.3

Design Goals


  • 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