zoukankan      html  css  js  c++  java
  • PHP学习笔记,自己动手写个MVC的框架 -- base所有代码

    <?php
    /**
    名称:基础类
    作用:引用参数处理类,加载基础配置,
    作者:swordphp@126.com
    创建日期:2013-07-31
    **/
    require_once(ROOT_PATH.'/system/lib/configs/sys_path.config.php');
    class base{
        public static $sys;
        private function __construct(){
            return false;
        }
        public static function getInstance(){
            if(!(self::$sys instanceof self)){
                self::$sys = new self();
            }
            return self::$sys;
        }
        //初始化方法
        public static function init(){
            self::sys_class('model');
            self::sys_class('ctrl');
            $args = self::__explan_arg();
            $ctrl = self::__load_ctrl($args['m'],$args['c']);
            call_user_func(array($ctrl,$args['a']));
        }
        //加载系统类
        public static function sys_class($classname){
            $file = SYS_CLASS_DIR.$classname.'.class.php';
            if(is_file($file)){
                include_once($file);
            }else{
                exit('class file not found!FILE'.$file);
            }
        }
        //加载数据模型
        public function load_model($modelname){
            $file = MODEL_DIR.$modelname.".model.class.php";
            if(is_file($file)){
                include_once $file;
                $classname = $modelname.'_model';
                return $model = new $classname;
            }else{
                exit('model file not found!');
            }
        }
        private function __clone(){
            //防止单例类被复制
        }
        //加载系统函数
        public static function sys_fun(){
    
        }
        //加载配置文件
        public static function load_config($dir,$name,$key='default'){
            $configs = array();
            $file = $dir.$name.'.config.php';
            if(is_file($file)){
                $configs = include_once($file);
                if(isset($configs[$key])){
                    return $configs[$key];
                }else{
                    exit("config wrong,not found!");
                }
            }else{
                //exit("config file not exist!FILE:".$file);
            }
        }
        //加载系统的配置文件
        public static function sys_config($name,$key='default'){
            $file = SYS_CONFIG_DIR;
            return self::load_config($file,$name,$key);
        }
    
        private static function __load_class($dir,$name){
    
        }
        //加载控制器
        //$m是模块名称
        //$c是控制器名称
        private static function __load_ctrl($m,$c){
            $c_dir = MODULES_DIR.$m."/";
            if(is_dir($c_dir)){
                include($c_dir.$c.'.php');
                $classname = 'c_'.$c;
                return new $classname;
            }else{
                exit("modules dir not exist!");
            }
        }
        //解析URL中的参数
        private static function __explan_arg(){
            $default_arg = self::sys_config('default_arg');
            $args['m'] = isset($_GET['m'])?$_GET['m']:$default_arg['m'];
            $args['c'] = isset($_GET['c'])?$_GET['c']:$default_arg['c'];
            $args['a'] = isset($_GET['a'])?$_GET['a']:$default_arg['a'];
            return $args;
        }
    }
  • 相关阅读:
    20191330雷清逸 学习笔记4
    sort
    20191330雷清逸 MyOD(选作,计入平时成绩)
    20191330雷清逸 Linux C语言编程基础(必做)
    20191330雷清逸 学习笔记3
    20191330雷清逸 学习笔记2
    无限的技能
    20191330 雷清逸 学习笔记1
    2021-2022-1-diocs-Linux系统编程第四周学习笔记
    Linux下man命令的使用
  • 原文地址:https://www.cnblogs.com/swordphp/p/3269647.html
Copyright © 2011-2022 走看看