# CodeIgniter 用户指南 版本 2.2.0

编辑文档、查看近期更改请 登录 或 注册 找回密码

搜索用户指南

查看原文

# 配置类

该配置类提供一种方法来进行偏好设置。该偏好来源于默认的配置文件(`application/config/config.php`) 或您自己定制的配置文件。

注意：该类已经自动加载而无需手动启用。

## 分析配置文件

默认情况下，CodeIgniter已经有一个主要的配置文件，位于`application/config/config.php`。如果你用文本编辑器打开你会看到配置项目被存储在一个叫$config的数组里。

您可以添加您自己的配置项目到这个文件里，或者您更愿意让您自己的配置项目与原配置项目分开（假设你需要额外的配置项），简单的创建一个文件并保存到config这个文件夹里就行了。

提示: 如果你想建立一个和主要配置文件一样格式的配置文件，把你的配置项目建立在一个名为$config的数组中,即使配置文件中有相同的数组名，CodeIgniter也能智能的管理这些文件而不会发生冲突.

## 加载配置文件

Note: CodeIgniter 会自动加载主要的配置文件(`application/config/config.php`), 所以你只需要加载你自己创建的配置文件

有两种方法来加载配置文件:

1. 手动加载

   为了加载一个你自定义的配置文件，你需要在 controller 中这样做:

   `$this->config->load('filename');`

   这里的 filename 是你自定义的配置文件的文件名，这个文件名没有 .php 的扩展名.

   如果你需要加载多个自定义配置文件，一般情况下它们会被合并成一个数组。然而，如果在不同的配置文件中存在同名的索引，那么会发生冲突。为了避免这个问题，你可以把第二个参数设置为 `TRUE` ，这可以使每个配置文件的内容存储在一个单独的数组中，数组的索引就是配置文件的文件名。请看下面的例子:

   `// 用这样的方式保存为一个数组: $this->config['blog_settings'] = $config
   $this->config->load('blog_settings', `TRUE`);`

   请阅读下面名为 获取配置元素 的部分以了解在这样的方式下如何取得配置信息

   第三个参数允许屏蔽当配置文件不存在时产生的错误信息:

   `$this->config->load('blog_settings', FALSE, `TRUE`);`
2. 自动加载

   如果你需要一个特定配置文件在全局范围内都能使用，你可以使系统自动加载它。要自动加载配置，请打开文件 autoload.php，它在 `application/config/autoload.php`，然后按照文件中的提示增加你想要自动加载的配置文件。

## 获取配置元素

从配置文件中检索元素，使用下面的函数:

`$this->config->item('item name');`

其中 item name 是 $config 数组中你期望检索的索引. 例如，要获得您选择的语言，你可以这样做:

`$lang = $this->config->item('language');`

当试图获取的元素不存在时，此函数返回 FALSE (boolean) 。

如果你为了用具体的索引来声明配置数组(避免上述索引重名问题)而在函数 `$this->config->load` 中使用了第二个参数，你可以通过指定函数 `$this->config->item()` 的第二个参数为特定索引名来获取相关的配置元素。例如:

`// 载入一个名为 blog_settings.php 的配置文件，然后把它声明为一个索引为 "blog_settings" 的数组
$this->config->load('blog_settings', `TRUE`);
// 在数组 blog_settings 中获取名为 site_name 的配置元素
$site_name = $this->config->item('site_name', 'blog_settings');
// 另外一种方式:
$blog_config = $this->config->item('blog_settings');
$site_name = $blog_config['site_name'];`

## 设置一项元素

如果你想动态设置/改变一个现有的配置元素，你可以使用:

`$this->config->set_item('item_name', 'item_value');`

其中 item_name 是你希望改变的 $config 数组的索引, item_value 是改变后的值.

注意：这里修改的配置元素并不是改变配置文件(application/config/config.php)的值，仅改变当前$this->config->item()方法取到的值

## 环境

你可以根据当前的开发/服务环境读取不同的配置文件. `ENVIRONMENT` 常量在 index.php 定义, 在 处理多环境 一章有详细的描述和说明.

一个特定环境的配置文件, 需要按此路径创建或者复制一个文件： application/config/{ENVIRONMENT}/{FILENAME}.php

例如，要创建一个仅'production'环境的 config.php, 你应该:

1. 创建文件夹：application/config/production/
2. 复制现有的 config.php 到上面的文件夹
3. 编辑 application/config/production/config.php 设定你在'production'环境所需的设置

当你设置 `ENVIRONMENT` 常量为 'production', 你刚创建的仅'production'环境的 config.php 配置文件将被加载。

你可以放置以下配置文件到特定环境的文件夹:

- 默认的 CodeIgniter 配置文件
- 你自己的用户配置文件

注意: CodeIgniter 会先尝试加载当前环境的配置文件。 如果文件不存在，将加载全局配置文件，例如 (`application/config/`) 。 这意味着你没有必要把 所有的配置文件放在特定环境的文件夹里， − 仅仅把各环境不同的放进去就行了。

## 辅助函数

配置类有以下辅助函数:

## $this->config->site_url();

该函数得到你网站的 URL，其中包含了你在 config 文件中设置的 "index" 的值。

## $this->config->base_url();

该函数返回站点的根 URL，可以在这个函数后拼接一个 URL 路径，用以生成 CSS 或图片文件的 URL。

以上两个函数一般通过URL 辅助函数中相应的函数（site_url() 和 base_url()）调用。

## $this->config->system_url();

该函数得到 system 文件夹的 URL。

翻译贡献者: airwin, aykirk, borisauschina, Hex, localtest, skey, szlinz, tanqimin, tinsn, xwjie, zhupeng, 暗夜星辰
最后修改: 2013-08-05 11:33:15