学习php自行开发mvc框架过程(八)

配置类

基本的MVC我们已经搭建完成,接下来我们要提高我们这个框架的健壮性,我们现在的路由都是写在当前文件中;

现在我们写一个配置类,通过配置类来加载我们的配置,当我们修改配置的时候就不用单独去找这些配置文件了

首先,我们在lib目录下创建一个conf.php,然后给它一个命名空间core\lib

类的名称和文件名称保持一致

再在lib下建一个文件夹config,再在config中建立一个route.php内容如下:

<?php
	return  array(
			'CONTROLLER'=>'index',
			'ACTION'=>'index',
		);
接下来我们要在conf.php中理一下我们的思路

1、判断我们的配置文件是否存在

2、判断配置是否存在

3、缓存配置

<?php 
namespace core\lib;

class conf
{
	static public $conf = array();		//新建一个静态属性来存放我们的配置
	static public function get($name,$file){
		/**
		* 1、判断配置文件是否存在
		* 2、判断配置类是否存在
		* 3、缓存配置
		*@XIA
		*@return:
		*/
		if (isset(self::$conf[$file])) {		//判断配置文件是否存在
			return self::$conf[$file][$name];	//用$file作为区分缓存配置
		}else{
			$path = XIA.'/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);	//文件不存在则抛出异常
			}
		}
	}
}
这样我们的加载配置类基本完成了

现在我们把我们的数据库类再完善一下

在config文件夹下新建一个database.php,代码如下

<?php
return array(
		'DSN' => 'mysql:host=localhost;dbname=test',
		'USERNAME' => 'root',
		'PASSWD' => 'root',
	);

再扩充一下conf.php的方法

static public function all($file){
		if (isset(self::$conf[$file])) {
			return self::$conf[$file];
		}else{
			$path = XIA.'/core/config/'.$file.'.php';
			if (is_file($path)) {
				$conf = include $path;
				if (isset($conf[$name])) {
					self::$conf[$file] = $conf;
					return $conf;
				}else{
					throw new \Exception("没有这个配置项".$file);
				}
			}
		}
	}
我们的配置类就封装成了


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值