<?php
/**
* FastPHP核心框架
*/
class Core
{
// 运行程序
function run()
{
spl_autoload_register(array($this, 'loadClass'));
$this->setReporting();
$this->removeMagicQuotes();
$this->unregisterGlobals();
$this->Route();
}
// 路由处理
function Route()
{
$controllerName = 'Index';
$action = 'index';
if (!empty($_GET['url'])) {
$url = $_GET['url'];
$urlArray = explode('/', $url);
// 获取控制器名
$controllerName = ucfirst($urlArray[0]);
// 获取动作名
array_shift($urlArray);
$action = empty($urlArray[0]) ? 'index' : $urlArray[0];
//获取URL参数
array_shift($urlArray);
$queryString = empty($urlArray) ? array() : $urlArray;
}
// 数据为空的处理
$queryString = empty($queryString) ? array() : $queryString;
// 实例化控制器
$controller = $controllerName . 'Controller';
$dispatch = new $controller($controllerName, $action);
// 如果控制器存和动作存在,这调用并传入URL参数
if ((int)method_exists($controller, $action)) {
call_user_func_array(array($dispatch, $action), $queryString);
} else {
exit($controller . "控制器不存在");
}
}
// 检测开发环境
function setReporting()
{
if (APP_DEBUG === true) {
error_reporting(E_ALL);
ini_set('display_errors','On');
} else {
error_reporting(E_ALL);
ini_set('display_errors','Off');
ini_set('log_errors', 'On');
ini_set('error_log', RUNTIME_PATH. 'logs/error.log');
}
}
// 删除敏感字符
function stripSlashesDeep($value)
{