RouteMap is an implementation of Rails like
routes system for mapping URLs to controllers/actions and generating
URLs. Useful even for code which doesn't use MVC pattern. This
particular implementation is inspired by Pylons' Routes2 system adapted to PHP5.
Basically, you map an URL to some method. e.g.
An unintended consequence of this routing stuff is that your URLs are now pretty, cool and RESTful.
May 7th, 2008 - Version 0.9.0 released with important improvements for route matching
April 10th, 2008 - Some minor fixes are in source code repository. 1.0 will be released after we finish developer documentation (in a week or two). Unitil then, read the source.
There is also another Pylons' Routes port from Horde project: http://dev.horde.org/routes. I warmly recommend it if, for some strange reason, you don't want to use RouteMap. They even have route minimization and other clever features.
First release of RouteMap was written from scratch in just two days. It is only one file/class, around 500 lines of code. It was fun to write, and hopefuly fun to use。
from http://code.google.com/p/routemap/
Basically, you map an URL to some method. e.g.
http://example.net/index.php?archive/2008/01/01 or
http://example.net/archive/2008/01/01 (with URL rewriting)could map to a single method call
News::show("2008", "01", "01");where "route" is represented by 'archive/:year/:month/:day' and year, month, and day denote "route arguments". For each route, you decide which action should be executed. See Manual for more detailed introduction to URL routing with RouteMap.
An unintended consequence of this routing stuff is that your URLs are now pretty, cool and RESTful.
News
May 15th, 2008 - Version 0.9.1 - License change, RouteMap is now licensed under the terms of New BSD license.May 7th, 2008 - Version 0.9.0 released with important improvements for route matching
- New matching order: static, dynamic and wild-card routes
- Always prefer routes with static parts against the ones with arguments.
April 10th, 2008 - Some minor fixes are in source code repository. 1.0 will be released after we finish developer documentation (in a week or two). Unitil then, read the source.
Features
- named routes (dynamic, static and passive)
- route matching
- route argument requirements (filtered with PCRE)
- URL generation
- simple dispatching (optional)
- All routes are explicit, route minimization is not supported (and probably never will be)
- Controller and action are not embedded in route itself, but explicit arguments to RouteMap::connect()
- We don't use regular expressions for route matching, they are used only when checking requirements for route arguments.
Notes
Many PHP MVC frameworks have some kind of Routes implementation (Zend, Code Igniter, CakePHP, Symfony), for various reasons I find them inadequate, ugly, or just too big ...There is also another Pylons' Routes port from Horde project: http://dev.horde.org/routes. I warmly recommend it if, for some strange reason, you don't want to use RouteMap. They even have route minimization and other clever features.
First release of RouteMap was written from scratch in just two days. It is only one file/class, around 500 lines of code. It was fun to write, and hopefuly fun to use。
from http://code.google.com/p/routemap/