zoukankan      html  css  js  c++  java
  • 配置文件

    引入配置文件,先我们MyPDO类中 有数据库的连接信息,还有在框架类中的一些平台参数等

    配置文件创建并分组

    <?php 
    
    //配置文件
    return array(
        /**
         * 配置文件分组
         */
        'db' =>array( // 数据库信息组
            'host' =>'localhost',
            'port'=>'3306',
            'dbname' =>'my_db',
            'user' =>'root',
            'pwd' =>'root',
            'charset' =>'utf8',
        ),
        'App' => array( //应用程序组
            'default_platform' =>'test'    //默认平台
        ),
        'Home' =>array(  //前台平台组
    
        ),
        'Test' =>array( //测试平台组
            'default_controller' =>'Mybank',
            'default_action' =>'show'
        )
    );

    在框架类中实现配置文件,并且复制给超全局变量

    1.

        //初始化配置文件,并且复制给超全局变量,可以在任何地方访问
        private static function initConf(){
            $GLOBALS['conf']=include CONFIG_DIR.'conf.php';
        }

    2.在基本目录常量中定义conf.php的目录

         * 基本目录常量
         */
        private static function initDir(){
            //定义目录
            define('ROOT_DIR',str_replace('\','/',getcwd().'/'));
            //定义app目录
            define("APP_DIR",ROOT_DIR."app/");
            //定义frame目录
            define('FRAME_DIR',ROOT_DIR."frame/");
            //定义Config配置目录
            define('CONFIG_DIR',APP_DIR.'COnfig/');
        }

    3.在分发参数中,设置默认的平台,控制器,动作

        /**
         * 获取分发参数 p c a
         */
        private static function  initFenFaParam(){
            //获取平台platfrom p参数
            define('PLATFORM',isset($_GET['p']) ? $_GET['p'] : $GLOBALS['conf']['App']['default_platform']);
            //获取分发参数c
            define('CONTROL',isset($_GET['c']) ? $_GET['c'] : $GLOBALS['conf']['Test']['default_controller']);
            //获取分发参数a
            define('ACTION',isset($_GET['a']) ? $_GET['a'] : $GLOBALS['conf']['Test']['default_action'] );
        }

     4.在Model模型中设置数据库信息

    <?php 
    class Model
    {
        protected $link;
        public function __construct(){
            $this->initInstance();
        }
    
        public function initInstance(){
            $config=$GLOBALS['conf']['db'];
            $this->link = MyPDO::getInstance($config);
        }
    }

    5.在构造函数中,在获取分发参数之前执行这个初始化配置函数

        /**
         * 整体的项目运行函数
         */
        public static function run(){
            //1、定义基础常量
            self::initDir();
            //初始化配置
            self::initConf();
            //2、确定分发参数
            self::initFenFaParam();
            //3、定义当前平台相关的目录常量
            self::initCurrentConst();
            //4、自动加载类
            spl_autoload_register('self::autoLoad');
            // self::initAutoLoad();   也可以使用这个,在类里面在定义一个函数initAutoLoad( spl_autoload_register( 自动函数方法));
            //5、请求分发
            self::initFenFa();
        }
  • 相关阅读:
    R语言代写模型中的加总偏误与内生性:一种数值模拟方法
    R语言代写NYPD纽约市警察局抢劫者数据分析
    R语言代写使用马尔可夫链Markov Chain, MC来模拟抵押违约
    BZOJ 2600: [Ioi2011]ricehub 双指针+贪心
    BZOJ 4903: [Ctsc2017]吉夫特 数论+dp
    BZOJ 4500: 矩阵 带权并查集
    草稿
    BZOJ 5082: 弗拉格 矩阵乘法
    BZOJ 4764: 弹飞大爷 LCT
    BZOJ 3309: DZY Loves Math 莫比乌斯反演+打表
  • 原文地址:https://www.cnblogs.com/xiaowie/p/14337968.html
Copyright © 2011-2022 走看看