/**
* 运行对应的控制器
*
* @return void
*/
public final function runAppController()
{
//检测csrf跨站攻击
Secure::checkCsrf(Config::get('check_csrf'));
// 关闭GPC过滤 防止数据的正确性受到影响 在db层防注入
if (get_magic_quotes_gpc()) {
Secure::stripslashes($_GET);
Secure::stripslashes($_POST);
Secure::stripslashes($_COOKIE);
Secure::stripslashes($_REQUEST);
//在程序中对get post cookie的改变不影响 request的值
}
//session保存方式自定义
if (Config::get('session_user')) {
Session::init();
} else {
ini_get('session.auto_start') || session_start();
//自动开启session
}
header('Cache-control: ' . Config::get('http_cache_control'));
// 页面缓存控制
//如果有子类中有init()方法 执行Init() eg:做权限控制
if (method_exists($this, "init")) {
$this->init();
}
//根据动作去找对应的方法
$method = Route::$urlParams['action'];
if (method_exists($this, $method)) {
$this->{$method}();
} elseif ($GLOBALS['debug']) {
Cml::montFor404Page();
throwException(Lang::get('_ACTION_NOT_FOUND_', Route::$urlParams['action']));
} else {
Cml::montFor404Page();
Response::show404Page();
}
}