这篇文章我们来分析一下config.php这个文件,这个是配置管理类,用于管理各种配置的。

/var/Typecho/Config.php

这个类是有迭代器的接口的,这个需要注意一下。

这个类中有个$_currentConfig变量存储了当前的配置,构造函数中调用了setDefault()函数来初始化变量,我们来看一下这个函数,还是比较简单的。

public function setDefault($config, $replace = false)
{
    /*
        如果$config为空,直接return    
    */
    if (empty($config)) {
        return;
    }

    /** 初始化参数 */
    if (is_string($config)) {
        // parse_str将字符串解析成多个变量,结果放到$params中
        parse_str($config, $params);
    } else {
        // 如果是字符串的话直接赋值
        $params = $config;
    }

    /** 设置默认参数 */
    foreach ($params as $name => $value) {
        if ($replace || !array_key_exists($name, $this->_currentConfig)) {
            $this->_currentConfig[$name] = $value;
        }
    }
}

之前在分析数据库的时候我们还看到了一个工厂方法,现在来看一下是怎么实现的:

public static function factory($config = array())
{
    return new Typecho_Config($config);
}

只是简单的返回了个实例对象,剩下的方法就没什么好说的了,都十分的简单。