现在,我正在尝试改进我的MVC路由器调度功能。我的主要问题是用户可以尝试访问对象,如果失败,显然会返回一个空白页面。
例如,如果我有一个名为error
的对象且其中一个类方法是setType()
,则用户可以输入error/settype
作为URI。
所有网址都写入index.php?url=$1
$url = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$controller = !empty($url[0]) ? $url[0] : 'home';
$method = !empty($url[1]) ? $url[1] : 'index';
$params = !empty($url[2]) ? $url[2] : $_POST;
if (class_exists($controller)){
$dispatchedController = new $controller;
if (! method_exists($controller, $method)){
/**
* Error handling
**/
}
return $dispatchedController->$method($params);
} else{
/**
* Error handling
**/
}
我怎样才能改进路由器?我认为,提供白名单或黑名单并不是很实用。