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

来源:互联网 发布:淘宝店如何加入返利网 编辑:程序博客网 时间:2024/06/06 17:32

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'));}//设置sessionprivate static function setSession() {@session_start();        //$user=array();//$user['id']=1;//$user['username']='zhangsan';//$_SESSION['user']=$user;}//设置urlprivate 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)开启sessionself::setSession();////////// 测试session////////////////////////////7)url初始化self::setUrl();//8)权限验证//self::setPrivilege();//9)分发self::setDispatch();}}?>


0 0
原创粉丝点击