學習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);
				}
			}
		}
	}
我們的配置類就封裝成了


發佈了22 篇原創文章 · 獲贊 10 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章