您的位置:首页 > 移动开发

MVC核心文件Application.class.php设计实例

2015-05-21 21:54 357 查看
MVC核心文件Application.class.php设计实例

<?php
//通过判断ACCESS常量,判断来源是否为非法请求
if(!defined('ACCESS')) {
echo '非法入侵';
exit;
}
class Application {
//设置字符编码
private static function setHeader() {
header('Content-type:text/html;charset=utf-8');
}
//设置系统常量
private static function setConst() {
define('ROOT_DIR',str_replace('\\', '/', dirname(__DIR__)));
define('CORE_DIR',ROOT_DIR.'/Core');
define('ACTION_DIR',ROOT_DIR.'/Action');
define('MODEL_DIR',ROOT_DIR.'/Model');
define('VIEW_DIR',ROOT_DIR.'/View');
define('Config_DIR',ROOT_DIR.'/Config');
define('PUBLIC_DIR',ROOT_DIR.'/Public');
}
//设置错误信息
private static function setErrors() {
//ini_set('display_errors', 0);
//error_reporting(E_ALL);
}

//初始化配置信息
private static function setConfig() {
$GLOBALS['config'] = include_once Config_DIR.'/config.php';
}

//加载Core核心文件
public static function loadCore($class) {
if(is_file(CORE_DIR."/$class.class.php")) {
include_once CORE_DIR."/$class.class.php";
}
}

//加载控制器文件
public static function loadAction($class) {
if(is_file(ACTION_DIR."/$class.class.php")) {
include_once ACTION_DIR."/$class.class.php";
}
}

//加载模型文件
public static function loadModel($class) {
if(is_file(MODEL_DIR."/$class.class.php")) {
include_once MODEL_DIR."/$class.class.php";
}
}

//自动加载机制
private static function setAutoLoad() {
//通过以下方式可以将loadCore,loadAction,loadModel追加到系统__autoload函数栈中
//当系统初始化对象时,系统会自动到以下三个函数中寻找,但是有顺序要求,先注册先使用,如在当
//前文件中已找到,其将不会继续向下寻找
spl_autoload_register(array('Application','loadCore'));
spl_autoload_register(array('Application','loadAction'));
spl_autoload_register(array('Application','loadModel'));
}

//设置session
private static function setSession() {
@session_start();
//$user=array();
//$user['id']=1;
//$user['username']='zhangsan';
//$_SESSION['user']=$user;
}

//设置url
private static function setUrl() {
$module = isset($_REQUEST['module'])?$_REQUEST['module']:'privilege';
$action = isset($_REQUEST['action'])?$_REQUEST['action']:'index';

//把接收到的所有参数转化为小写
$module = strtolower($module);
$action = strtolower($action);
//由于命名习惯问题,我们需要将模块参数的首字母转化为大写
$module = ucfirst($module);

define('MODULE',$module);
define('ACTION',$action);
}

//设置权限
private static function setPrivilege() {

if(!(MODULE=='Privilege' && (ACTION=='login' || ACTION=='sigin' || ACTION=='captcha'))) {
if(!isset($_SESSION['user'])) {
header('Location:index.php');
}
}
}

//设置分发
private static function setDispatch() {
$module = MODULE.'Action';
$action = ACTION;
//创建对象
$module = new $module();
$module->$action();
}

//定义初始化方法
public static function run() {

//1)初始化字符集
self::setHeader();
//2)初始化系统常量
self::setConst();
//3 )初始化错误配置
self::setErrors();
//4)初始化配置信息
self::setConfig();
//5)自动加载
self::setAutoLoad();
//6)开启session
self::setSession();
////////// 测试session//////////////////////////
//7)url初始化
self::setUrl();
//8)权限验证
//self::setPrivilege();
//9)分发
self::setDispatch();
}
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐