现在,我正在尝试改进我的 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
**/
}
如何改进我的路由器?我认为提供白名单或黑名单不太实用。