配置读取
- 创建Config class, namespace 为Slavavel\Config\Config
- 在Application的核心服务注册中将Config类注入
- 创建Bootstrap下的loadConfig,在kernel中进行加载,(请求处理的服务注册)
- LoadConfig中进行config目录的传递,并且将解析完配置文件的config类重新绑定
源码见个人git https://github.com/mafa1993/slaravel
<?php
namespace Slaravel\Config;
//获取配置类
class Config
{
public $items;
/**
* @param string $config_path config的路径
* @return object
*/
public function phpParser($config_path){
$files = scandir($config_path);
$data = [];
foreach ($files as $file){
if(in_array($file,['.','..'])){
continue;
}
$filename = pathinfo($file)['filename'];
$data[$filename] = require_once $config_path.DIRECTORY_SEPARATOR.$file;
}
$this->items = $data;
return $this;
}
/**
* 获取全部
*/
public function all(){
return $this->items;
}
/**
* 获取具体配置
* @param string $key 文件名.具体键
*/
public function get($key){
//利用变量,巧妙实现递归
$data = $this->items;
$key_arr = explode('.',$key);
foreach ($key_arr as $val){
$data = $data[$val];
}
return $data;
}
}
网友评论