封装application类

mac2022-06-30  15

<?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下面的服务
最新回复(0)