Front controller pattern is a common PHP pattern were all routes are directed to single entry point (usually index.php) and then dispatched and routed to the right controllers/handlers/etc.
Tuleap comes from a time were this pattern was not yet in use so there are far too many entry points and a tendency to have routers and controllers not properly separated.
Thanks to PHP 5.6 upgrade, we can now use standard routers like FastRoute
Expected benefit will be:
- Simplify nginx configuration that was crafted painfuly to support old apache behaviours to nginx (hello src/www/projects hidden php page). This still hurt us from time to time with URLs that doesn't contains .php
- Simplify implementation of plugins. They won't have to deploy an entry point in there www/ sub folder. They will have to listen to an event instead.
- Promote usage of clean urls instead of oldish &action=stuff&vla=var. Welcome /stuff/var
- Allow to rename / support several URLs for same resource (like having a customized agiledashboard server below /cmmi-level5 URL, just sayin').