annuaire recherche
欢迎 目录 快速参考图 基本信息 服务器要求 许可协议 变更记录 关于CodeIgniter 安装 下载 CodeIgniter 安装指导 从老版本升级 疑难解答 介绍 开始 CodeIgniter 是什么? CodeIgniter 速记表 支持特性 应用程序流程图 模型-视图-控制器 架构目标 教程 内容提要 加载静态内容 创建新闻条目 读取新闻条目 结束语 常规主题 CodeIgniter URL 控制器 保留字 视图 模型 辅助函数 使用 CodeIgniter 类库 创建你自己的类库 使用 CodeIgniter 适配器 创建适配器 创建核心系统类 钩子 - 扩展框架的核心 自动装载资源 公共函数 URI 路由 错误处理 缓存 调试应用程序 以CLI方式运行 管理应用程序 处理多环境 PHP替代语法 安全 开发规范 类库参考 基准测试类 日历类 购物车类 配置类 Email 类 加密类 文件上传类 表单验证详解 FTP 类 图像处理类 输入类 Javascript 类 语言类 装载类 迁移类 输出类 分页类 模板解析器类 安全类 Session 类 HTML 表格类 引用通告类 排版类 单元测试类 URI 类 User-Agent 类 表单验证 XML-RPC 和 XML-RPC 服务器 Zip 编码类 缓存适配器 适配器参考 适配器 数据库类 Active Record 类 数据库缓存类 自定义函数调用 数据库配置 连接你的数据库 数据库快速入门例子代码 字段数据 数据库维护类 查询辅助函数 数据库类 查询 生成查询记录集 表数据 事务 数据库工具类 JavaScript类 辅助函数参考 数组辅助函数 CAPTCHA 辅助函数 Cookie Helper 日期辅助函数 目录辅助函数 下载辅助函数 Email 辅助函数 文件辅助函数 表单辅助函数 HTML辅助函数 Inflector 辅助函数 语言辅助函数 数字辅助函数 路径辅助函数 安全辅助函数 表情辅助函数 字符串辅助函数 文本辅助函数 排版辅助函数 URL 辅助函数 XML 辅助函数
personnages

CodeIgniter 用户指南 版本 2.1.0

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

配置类

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

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

分析配置文件

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

您可以添加您自己的配置项目到这个文件里,或者您更愿意让您自己的配置项目与原配置项目分开(assuming you even need config items),简单的创建一个文件并保存到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/) 。 这意味着你没有必要把 所有的配置文件放在特定环境的文件夹里, − 仅仅把各环境不同的放进去就行了。

辅助函数

config 类有以下辅助函数:

$this->config->site_url();

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

$this->config->base_url();

This function retrieves the URL to your site, plus an optional path such as to a stylesheet or image.

The two functions above are normally accessed via the corresponding functions in the URL Helper.

$this->config->system_url();

该函数得到 system folder 的URL .

 

翻译贡献者: airwin, aykirk, borisauschina, Hex, skey, szlinz, tanqimin, xwjie, zhupeng, 暗夜星辰
最后修改: 2012-04-27 17:40:20
Article précédent: Article suivant: