如何封装一个自己的mvc框架(四)
2016-12-25 19:46
232 查看
之前写好的框架看起来太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);
}
}
输出结果
说明没有出现错误运行正常,配置成功!!
欲知后事如何请听下回分解......
我们需要做的是加载配置类,这样我们的框架看起来就比较的完善了
首先创建配置信息文件目录
例如路由信息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
说明没有出现错误运行正常,配置成功!!
欲知后事如何请听下回分解......
相关文章推荐
- 如何封装一个自己的mvc框架(三)
- 如何封装一个自己的mvc框架(一)
- 如何封装一个自己的mvc框架(六)
- 如何封装一个自己的mvc框架(五)
- 如何封装一个自己的mvc框架(二)
- 如何封装一个自己的mvc框架(七)
- 封装一个自己的mvc框架
- 如何自己封装一个ajax函数
- 如何自己封装一个ajax函数
- 如何将自己的实体类封装到一个list中,定义自己一系列的方法
- Android引入第三方jar包的方法及如何将自己的代码封装成一个jar库
- [C#] 自己封装的一个数据库访问类 让ado.net 用起来和ado一样
- 如何自己写一个日历
- D3D初始化环境 自己封装的一个简单的类
- 如何建立一个自己的网站
- [C#] 自己封装的一个数据库访问类 让ado.net 用起来和ado一样
- 设计模式研究:如何判断一个封装方案是好是坏
- 自己封装的一个泛型集合基类
- 已知道 一个窗口的句柄, 如何扑捉该窗口的onresize 事件,并在onresize 事件中写入自己的代码?
- 自己封装的一个ASP.NET上传文件的方法