change router to allow hooking path connections

This commit is contained in:
Evan Prodromou 2010-03-23 12:33:41 -04:00
parent ff60cb4e66
commit dd115fcb08

View File

@ -33,6 +33,33 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
require_once 'Net/URL/Mapper.php'; require_once 'Net/URL/Mapper.php';
class StatusNet_URL_Mapper extends Net_URL_Mapper {
private static $_singleton = null;
private function __construct()
{
}
public static function getInstance($id = '__default__')
{
if (empty(self::$_singleton)) {
self::$_singleton = new StatusNet_URL_Mapper();
}
return self::$_singleton;
}
public function connect($path, $defaults = array(), $rules = array())
{
$result = null;
if (Event::handle('StartConnectPath', array(&$path, &$defaults, &$rules, &$result))) {
$result = parent::connect($path, $defaults, $rules);
Event::handle('EndConnectPath', array($path, $defaults, $rules, $result));
}
return $result;
}
}
/** /**
* URL Router * URL Router
* *
@ -69,7 +96,7 @@ class Router
function initialize() function initialize()
{ {
$m = Net_URL_Mapper::getInstance(); $m = StatusNet_URL_Mapper::getInstance();
if (Event::handle('StartInitializeRouter', array(&$m))) { if (Event::handle('StartInitializeRouter', array(&$m))) {