怎样封装一个自己的mvc框架(四)
之前写好的框架看起来太low了,这一节我们增加我们框架的健壮性
我们需要做的是加载配置类,这样我们的框架看起来就比较的完善了
首先创建配置信息文件目录
例如路由信息route.PHP
<?php
return array(
'CONTROL'=>'index',
'ACTION'=>'index'
);
还有数据库信息
<?php
return 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
说明没有出现错误运行正常,配置成功!!