<?php //判断用户是否是通过入口文件访问 if(!defined('ACCESS')){ echo '非法请求'; die; } //封装初始化类 class Application { //设置字符编码 private static function setCharset() { header('Content-type:text/html;charset=utf-8'); } //设置系统常量 private static function setDir() { 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', 1); error_reporting(E_ALL); } //初始化配置信息 private static function setConfig() { $GLOBALS['config'] = include Config_DIR.'/config.php'; } //加载Core核心文件 public static function loadCore($class) { if(is_file(CORE_DIR."/$class.class.php")) { include CORE_DIR."/$class.class.php"; } } //加载控制器文件 public static function loadAction($class) { if(is_file(ACTION_DIR."/$class.class.php")) { include 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(); } //设置url private static function setUrl() { //默认显示Index控制器下的index方法 $module = isset($_REQUEST['m'])?$_REQUEST['m']:'Index'; $action = isset($_REQUEST['a'])?$_REQUEST['a']:'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'))) { $_SESSION['user'] = 1; 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::setCharset(); //2)初始化系统路径常量 self::setDir(); //3 )初始化错误配置 self::setErrors(); //4)初始化配置信息 self::setConfig(); //5)自动加载 self::setAutoLoad(); //6)开启session self::setSession(); //7)url初始化 self::setUrl(); //8)权限验证 self::setPrivilege(); //9)分发 self::setDispatch(); }}?>
转载于:https://www.cnblogs.com/shaohuixia/p/5427185.html
相关资源:使用Wrapper将Java Application程序封装为Windows下面的服务