之前写好的框架看起来太low了,这一节我们增加我们框架的健壮性
我们需要做的是加载配置类,这样我们的框架看起来就比较的完善了
首先创建配置信息文件目录
例如路由信息route.PHP
<?phpreturn array( 'CONTROL'=>'index', 'ACTION'=>'index');
还有数据库信息
<?phpreturn array( 'DSN'=>'MySQL:host=localhost;dbname=test', 'USERNAME'=>'root', 'PASSWORD'=>'root');
然后在我们的的核心文件目录中创建一个配置类文件,获取配置信息
<?php namespace core\lib;class config{ //定义数组缓存配置 static public $conf=array(); //获取配置某一项信息 static public function get($name,$file) { //首先判断文件是否缓存 if (isset(self::$conf[$file])) { //如果文件已缓存 return self::$conf[$file][$name]; }else{ //p(1); //判断配置文件是否存在 $path=ROOT."/core/config/".$file.".php"; if (is_file($path)) { $conf=include $path; //判断配置是否存在 if (isset($conf[$name])) { //缓存配置 self::$conf[$file]=$conf; return $conf[$name]; }else{ throw new \Exception('没有配置项'.$name); } }else{ throw new \Exception('找不到配置文件'.$file); } } } //获取配置全部信息 static public function all($file) { //首先判断文件是否缓存 if (isset(self::$conf[$file])) { //如果文件已缓存 return self::$conf[$file]; }else{ //p(1); //判断配置文件是否存在 $path=ROOT."/core/config/".$file.".php"; if (is_file($path)) { $conf=include $path; //缓存配置 self::$conf[$file]=$conf; return $conf; }else{ throw new \Exception('找不到配置文件'.$file); } } }}
封装完配置类之后,我们就可以重新配置之前类库里面的配置信息
use core\lib\config;
route.php中的
$route=config::all('route');
model.php中的
$route=config::all('database');
配置完成后在默认控制其中实例化模型类,获取路由信息
<?php namespace app\controllers;class indexController extends \core\mymvc{ public function index(){ p(1234); $model=new \core\lib\model(); $temp1= \core\lib\config::get('CONTROL','route'); $temp= \core\lib\config::get('ACTION','route'); p($temp); p($temp1); }}
输出结果
1234 index index
说明没有出现错误运行正常,配置成功!!
转载于:https://www.cnblogs.com/quanzhiguo/p/7363371.html
相关资源:Android MVC框架 网络封装