我们之前已经将简单的mvc框架封状出来了
那么现在我们对我们封装的mvc框架进行填充,首先我们从配置项上下手
需求:将路由以及连接数据变量设置成配置文件
文件:core/lib/conf.php 配置文件
:core/config/放置对应配置文件
那么首先读取配置文件的思路:
1、 首页我们要在core/lib文件下建立conf.php文件编写调用方法将配置文件以及配置项以参数形式输入
/**
* 1、判断配置文件是否存在
* 2、判断配置是否存在
* 3、缓存配置
*/
2、之后在core文件下建立config 文件编写所使用的配置文件返回配置数据(数组形式)
3、使用conf类调用配置文件所对应的配置属性
/core/lib/conf.php
<?php
namespace core\lib;
class conf{
//缓存配置
static public $conf = array();
static public function get($name,$file){
/**
* 1、判断配置文件是否存在
* 2、判断配置是否存在
* 3、缓存配置
*/
//判断是否已经加载该文件
if(isset(self::$conf[$file])){
return self::$conf[$file][$name];
}else{
// p(1);
$path = PATH.'/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{
$path = PATH.'/core/config/'.$file.'.php';
// p($path);exit;
//判断配置文件是否存在
if(is_file($path)){
$conf = include $path;
// p($path);exit;
//缓存文件
self::$conf[$file] = $conf;
return $conf;
//判断配置是否存在
}else{
throw new \Exception('找不到配置文件'.$file);
}
}
}
}
?>
core/config/route.php
<?php
return array(
'CONTROLLER'=>'indexss',
'ACTION'=>'index'
);
?>
\core\lib\route.php 文件调用
实例化conf类
调用对应配置
core/config/database.php
<?php
return array(
'DSN' =>'mysql:host=localhost;dbname=yii3',
'USERNAME'=>'root',
'PASSWORD'=>'root'
);
?>
/core/lib/model/php调用
<?php
namespace core\lib;
use \core\lib\conf;
class model extends \PDO{
public function __construct(){
$database = conf::all('database');
p($database);
try{
parent::__construct($database['DSN'],$database['USERNAME'],$database['PASSWORD']);
} catch (\PDOException $e){
p($e->getMessage());
}
}
}
这样就实现了配置项的写入以及读取