当前位置: 首页 > 文档资料 > FuelPHP 中文文档 >

Config - 类別

优质
小牛编辑
134浏览
2023-12-01

Config 类别处理 Fuel 里几乎所有的配置选项。无论何时你需要载入一个配置档案、取得一个值或设定一个值,你都使用此类别。

Config 档案类型

你可以使用不同的档案布局来储存你的配置,布局类型是由副档名决定:
  • PHP。预设类型,一个 PHP 档案应该回传一个阵列结构。
     return array('key' => 'value');
  • INI。ini 档案的布局定义,请参阅 此页
     [group]
    key=value
  • YAML。yaml 档案的布局定义,请参阅 此页
     group:
       key: value
  • JSON。json 档案的布局定义,请参阅 此页
     {
    "group" :
        {
    		"key": "value"
    	}
    }
  • DB。使用以下资料表结构:
      CREATE TABLE IF NOT EXISTS `config` (
      `identifier` char(100) NOT NULL,
      `config` longtext NOT NULL,
      `hash` char(13) NOT NULL,
      PRIMARY KEY (`identifier`)
    )
    预设情况下,它会使用名为 'config' 的资料表。你可以透过在 app/config/config.php 中定义资料表名称来覆写, 使用 config.table_name 键。

如果你没有指定档案类型,Config::load() 将预设为 'php' 类型。

Config 群组

配置群组是一个划分配置选项範围的简单方式。这可避免命名冲突。所有配置档案(db.php、routes.php、等等)被载入到相同名称的群组,除了主要的 config.php 档案。

get($item, $default = null)

get 方法回传想要的配置项目。如果该项目不存在会回传 $default。如果你正要取回的项目是一个群组,会回传整个群组。

静态
参数
参数预设描述
$item必要要取回项目的名称。可藉由点(.)分隔层级来存取群组和多维阵列。
$defaultnull(选择性)如果 $item 没找到,要回传的预设值。
回传$item,如果 $item 不存在的话是 $default。如果 $item 是一个群组,会是一个包含整个群组的 阵列
範例
// 输出在 config.php 中目前的语言设定
echo Config::get('language');

// 预设情况下,不存在的项目将回传 null
if (Config::get('items_to_display') === null)
{
	throw new Exception('You must set the number of items to display in config.php');
}

// 你可以像这样为不存在的项目设定一个预设值
$items_to_display = Config::get('items_to_display', 10);

// 这将载入整个 db 群组,该群组是 config/db.php 的内容
$db_configs = Config::get('db');

// 这将取得在 db 配置中的设定为 的 db 连线
$active_db = Config::get('db.active');

// 你可以像这样多层深入。
// 这将取回 db 群组中 'dev' 的主机名称
$dev_host = Config::get('db.dev.connection.hostname');

set($item, $value)

set 方法设定一个所给的 $item$value$item 可以被点(.)分隔,就像 get()

静态
参数
参数预设描述
$item必要要设定的项目名称。可藉由点(.)分隔层级来设定群组和多维阵列。如果 $item 不存在将被建立。
$value必要要设定给 $item 的值。
回传此方法总是回传 true
範例
// 设定目前语言
Config::set('language', 'en');

// 设定 active db 连线
Config::set('db.active', 'test');

// 设定一个你可以稍后使用的自订值
Config::set('items_to_display', 5);

// 你也可以使用点去建立自订的群组和项目
Config::set('blog.items_to_display', 5);

delete($item)

delete 方法移除一个所给的 $item$item 可以被点(.)分隔,就像 set()get()

静态
参数
参数预设描述
$item必要要删除的项目名称。
回传
範例
// 使用点符号移除一个配置项目
Config::delete('blog.items_to_display');

load($file, $group = null, $reload = false, $overwrite = false)

load 方法读取一个配置档案进入系统中。它在配置目录搜寻请求档案。你可以选择性的将配置档案分组,以避免命名冲突。

静态
参数
参数预设描述
$file必要相对于配置目录,指向配置档案的路径。不要包含副档名(假设是 ".php")。你可以用模组名称前缀它,从已载入的模组来强制载入一个配置档案。
$groupnull(选择性)要使用的群组名称。如果设为 true,那幺一个与 $file 同名的群组会被建立。如果没有设定或是 null,那幺载入的配置将与根配置合併。
$reloadfalse(选择性)如果设为 true,强制重新载入请求的配置,抹去与要被载入的配置档案相关的快取配置项目。
$overwritefalse(选择性)如果设为 true,载入的配置项目将以非递迴方法与已载入的项目合併,且将覆写多维阵列的阵列值,而非合併。
回传包含被载入的配置阵列。如果配置档案已经被载入,那幺将回传 false
範例
// 合併 "custom" 配置档案和根配置。
Config::load('custom');

// 载入 "custom" 配置档案进入名为 "custom" 的群组。
Config::load('custom', true);

// 载入 "custom" 配置档案进入名为 "foo" 的群组。
Config::load('custom', 'foo');

// 从 foo 模组载入 "custom" 配置档案进入名为 "bar" 的群组。
Config::load('foo::custom', 'bar');

save($file, $config)

save 方法储存一个配置档案进入系统。它在配置目录搜寻请求档案。如果没有找到存在的档案,配置档案将被建立在 APPPATH 的配置目录。

静态
参数
参数预设描述
$file必要相对于配置目录,指向配置档案的路径。不要包含副档名(假设是 ".php")。你可以用命名空间前缀它,从已载入的套件或模组来载入一个配置档案。
$config必要如果是字串,它指定一个要储存的群组名称。如果是一个阵列,它被假设为包含要储存的配置。
回传true 如果配置被储存,false 如果发生错误
範例
// 载入 "custom" 配置档案进入名为 "foo" 的群组。
Config::load('custom', 'foo');

// 更新一些配置项目
Config::set('foo.key', $value);

// 储存更新的配置群组 'foo'(注:将储存该群组的任何东西 )
Config::save('custom', 'foo');

// 储存更新的配置群组 'bar' 到 'foo' 模组的 'custom' 配置档案
Config::save('foo::custom', 'bar');