关于作业

来源:3-6 【Config底层类库分析二】load加载深度分析

一场丶

2019-04-17

在think\config\driver 下增加两个类 Php.php 和 Yaml.php

class Php
{
    protected $config;
    public function __construct($config)
    {
        $this->config = $config;
    }
    public function parse()
    {
        return include $this->config;
    }
}
class Yaml
{
    protected $config;

    public function __construct($config)
    {
        $this->config = $config;
    }

    public function parse()
    {
        return yaml_parse_file($this->config);
    }
}

然后 \think\Config.php 中注释掉判断语句

    protected function loadFile($file, $name)
    {

        $name = strtolower($name);
        $type = pathinfo($file, PATHINFO_EXTENSION);
//        if ('php' == $type) {
//            return $this->set(include $file, $name);
//        } elseif ('yaml' == $type && function_exists('yaml_parse_file')) {
//            return $this->set(yaml_parse_file($file), $name);
//        }

        return $this->parse($file, $type, $name);
    }
写回答

1回答

singwa

2019-04-17

嗯,很棒

0
1
慕粉3895804
处理yaml 不判断function_exists('yaml_parse_file') 。 一不小心就报错了
2019-12-30
共1条回复

BAT资深工程师解析Tp5+Tp6底层源码

一门课掌握主流Tp5+最新Tp6框架底层,拥抱新潮流

686 学习 · 145 问题

查看课程