引入配置文件,先我们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(); }