Typecho 源码笔记 配置类
这篇文章我们来分析一下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);
}
只是简单的返回了个实例对象,剩下的方法就没什么好说的了,都十分的简单。