网站开发技术

记点笔记、 学点技术 欢迎交流建站技术。本站关注lamp技术

您尚未登录。

#1 2014-11-26 12:10:59

admin
管理员

ci中如何获得配置文件的内容 get_config()

示例  

 var_dump(get_config()['charset']);

get_config 的工作原理是什么?

源代码了写的最清楚了,get_config 的源代码

function &get_config($replace = array()) {
    static $_config;

    // 用一个静态变量来存储配置信息, 不用每次都读取,配置文件,这样一定程度上提高了系统的性能。
    // 存在就直接返回
    if (isset($_config)) {
        return $_config[0];
    }

    // Is the config file in the environment folder?
    // 根据不同的配置获得配置文件的绝对路径
    if (!defined('ENVIRONMENT') OR ! file_exists($file_path = APPPATH . 'config/' . ENVIRONMENT . '/config.php')) {
        $file_path = APPPATH . 'config/config.php';
    }

    // Fetch the config file
    if (!file_exists($file_path)) {
        exit('The configuration file does not exist.');
    }

    // 这里, 在这个运行的函数中 存在 $config 变量, 离开这个函数就没有 $config , 
    // 这一点可以避免增加全局变量, 也不会和用户定义的 $config 变量有冲突。 
    // 所以再程序中也不能使用 $config 变量。
    require($file_path);

    // Does the $config array exist in the file?
    // 这里的 $config 变量是来自文件中的。 
    if (!isset($config) OR ! is_array($config)) {
        exit('Your config file does not appear to be formatted correctly.');
    }

    // Are any values being dynamically replaced?
    // 通过参数可以增加或者替换配置文件
    if (count($replace) > 0) {
        foreach ($replace as $key => $val) {
            if (isset($config[$key])) {
                $config[$key] = $val;
            }
        }
    }
    // 返回结果
    return $_config[0] = & $config;
}



ipbbs.net

离线

页脚

Powered by FluxBB