美文网首页
手写一个laravel(五)配置读取

手写一个laravel(五)配置读取

作者: mafa1993 | 来源:发表于2020-11-28 15:45 被阅读0次

配置读取

  1. 创建Config class, namespace 为Slavavel\Config\Config
  2. 在Application的核心服务注册中将Config类注入
  3. 创建Bootstrap下的loadConfig,在kernel中进行加载,(请求处理的服务注册)
  4. 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;
    }
}

相关文章

网友评论

      本文标题:手写一个laravel(五)配置读取

      本文链接:https://www.haomeiwen.com/subject/sxtcwktx.html