class Router
{
- var $m = null;
+ static $m = null;
function __construct()
{
+ if (!$this->m) {
+ $this->m = $this->initialize();
+ }
+ }
+
+ function initialize() {
+
$m = Net_URL_Mapper::getInstance();
// In the "root"
array('action' => 'userbyid'),
array('id' => '[0-9]+'));
- $m->connect('tags/?', array('action' => 'publictagcloud'));
- $m->connect('tag/?', array('action' => 'publictagcloud'));
+ $m->connect('tags/', array('action' => 'publictagcloud'));
+ $m->connect('tag/', array('action' => 'publictagcloud'));
+ $m->connect('tags', array('action' => 'publictagcloud'));
+ $m->connect('tag', array('action' => 'publictagcloud'));
$m->connect('tag/:tag/rss',
array('action' => 'tagrss'),
array('tag' => '[a-zA-Z0-9]+'));
array('action' => 'peopletag'),
array('tag' => '[a-zA-Z0-9]+'));
- $m->connect('featured/?', array('action' => 'featured'));
- $m->connect('favorited/?', array('action' => 'favorited'));
+ $m->connect('featured/', array('action' => 'featured'));
+ $m->connect('featured', array('action' => 'featured'));
+ $m->connect('favorited/', array('action' => 'favorited'));
+ $m->connect('favorited', array('action' => 'favorited'));
// groups
array('action' => 'showgroup'),
array('nickname' => '[a-zA-Z0-9]+'));
- $m->connect('group/?', array('action' => 'groups'));
+ $m->connect('group/', array('action' => 'groups'));
+ $m->connect('group', array('action' => 'groups'));
+ $m->connect('groups/', array('action' => 'groups'));
+ $m->connect('groups', array('action' => 'groups'));
// Twitter-compatible API
array('action' => 'showstream'),
array('nickname' => '[a-zA-Z0-9]{1,64}'));
- $this->m = $m;
+ return $m;
}
function map($path)