The current layout of the router and it's routes is not very flexible and was not made for the current problems it currently tries to solve. Thus, it is going under refactoring to solve the drawbacks. In general, the following topics should be covered with the new router:
- Lightweight: Should be as fast or if possible even faster than the current implementation
- Design by contract: The router and it's routes get covered by interfaces
- The router should completly work with the request object instead of URL-strings
- The getInstance() method will be removed from all routes. Instead we will use a unified constructor
- getDefault() and getDefaults() will become interface methods
- The match() method will only allow an instance of end_Controller_Request_Http
Currently the router doesn't follow the coding standard completly, this will be solved together with the refactoring.