rewrite base & default decorator setup
git-svn-id: svn+ssh://code.netmonsters.ru/svn/majestic/trunk@21 4cb57b5f-5bbd-dd11-951b-001d605cbbc5
This commit is contained in:
@ -13,7 +13,12 @@
|
|||||||
|
|
||||||
final class Router
|
final class Router
|
||||||
{
|
{
|
||||||
|
|
||||||
protected $routes = array();
|
protected $routes = array();
|
||||||
|
|
||||||
|
static protected $rewrite_base = '';
|
||||||
|
static protected $decorator = DEFAULT_DECORATOR;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Добавить роутер
|
* Добавить роутер
|
||||||
@ -26,6 +31,7 @@ final class Router
|
|||||||
function add($name, $path, $action, $params = array())
|
function add($name, $path, $action, $params = array())
|
||||||
{
|
{
|
||||||
$this->routes[$name] = new Route($path, $action, $params);
|
$this->routes[$name] = new Route($path, $action, $params);
|
||||||
|
$this->routes[$name]->decorator = self::$decorator;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -49,9 +55,9 @@ final class Router
|
|||||||
*/
|
*/
|
||||||
function proccess($path)
|
function proccess($path)
|
||||||
{
|
{
|
||||||
$path = explode('/', $path);
|
$path = explode('/', ltrim($path, self::getRewriteBase()));
|
||||||
|
|
||||||
foreach ($this->routes as $name => $route) {
|
foreach($this->routes as $name => $route) {
|
||||||
if ($route->match($path)) {
|
if ($route->match($path)) {
|
||||||
$route->action .= ACTION_POSTFIX;
|
$route->action .= ACTION_POSTFIX;
|
||||||
Env::setParams($route->params);
|
Env::setParams($route->params);
|
||||||
@ -60,6 +66,21 @@ final class Router
|
|||||||
}
|
}
|
||||||
throw new Exception(E_404);
|
throw new Exception(E_404);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static public function setRewriteBase($value = '')
|
||||||
|
{
|
||||||
|
self::$rewrite_base = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static public function getRewriteBase()
|
||||||
|
{
|
||||||
|
return self::$rewrite_base;
|
||||||
|
}
|
||||||
|
|
||||||
|
static public function setDefaultDecorator($decorator)
|
||||||
|
{
|
||||||
|
self::$decorator = $decorator.DECORATOR_POSTFIX;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user