CI源码之加载使用config文件的几种方式

本文详细介绍了CI框架中加载配置文件的方式,包括CI_Config类的load方法和CI_Loader::config()方法。重点解析了config.php文件的特殊加载方式,以及get_config()方法的作用。同时,讨论了配置文件加载时的分片选项use_sections对加载效果的影响,并提供了访问配置变量的优雅方法,如item()和config_item()函数。
摘要由CSDN通过智能技术生成

configCi中的配置文件,其中有自定义的config,也有CI框架中带着的config,其中最特殊的当属于config目录下的config.php这个文件了。从官方手册上我们看到,加载config文件大概有两种方式,第一种是使用Core/Config.php 这个文件中的CI_Config类中的load方法加载,第二种是使用CI_Loader::config()方法加载,但是我们仔细观察。CI_Loader::config()方法中的方法

public function config($file = '', $use_sections = FALSE, $fail_gracefully = FALSE)
	{
		$CI =& get_instance();
		$CI->config->load($file, $use_sections, $fail_gracefully);
	}


不难看出,加载器中的config方法最终还是调用了CI_Config类中的load方法来加载config文件中的参数的。

所以我们可以总结,在CI_Controller 或者是 CI_Model的子类中可以通过$this->config->load()方法或者是$this->load->config()方法,都可以对配置文件进行加载。

至于为什么我在文章一开始说config.php这个文件很特殊,因为这个文件不是通过我上述所说的两种加载配置文件加载的,而是在CI_Config这个类被实例化的时候

function __construct()
	{
		$this->config =& get_config();
		log_message('debug', "Config Class Initialized");

		// Set the base_url automatically if none was provided
		if ($this->config['base_url'] == '')
		{
			if (isset($_SERVER['HTTP_HOST']))
			{
				$base_url = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off' ? 'https' : 'http';
				$base_url .= '://'. $_SERVER['HTTP_HOST'];
				$base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
			}

			else
			{
				$base_url = 'http://localhost/';
			}

			$this->set_item('base_url', $base_url);
		}
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值