操作配置文件
说明
配置分为运行时配置和自定义配置,运行时配置在框架初始化时会自动加载,自定义配置是在用到的时候才会加载.
读取运行时配置
运行时配置定义可以看上一篇文档,比如这里我们要读取db.config.php里面的mysql配置,最多可以读取三级.
$mysql_config = Config::runtime('mysql');
$master_config = Config::runtime('mysql.master');
$user = Config::runtime('mysql.master.user');
读取自定义配置
这里我们以上篇提到的store.config.php为例来说明,注意,我们store.config.php是放在了/config目录下面的
store.config.php文件内容
<?php
return [
'qiniu' => [
'key' => [
'ak' => 'akak',
'sk' => 'sksk',
],
'bucket' => [
'tmp' => 'timophp-tmp',
'img' => 'timophp-img',
'avatar' => 'timophp-avatar',
'audio' => 'timophp-audio',
],
'resource' => [
'img' => 'http://img.timophp.com/',
'avatar' => 'http://avatar.timophp.com/',
'audio' => 'http://audio.timophp.com/',
]
],
]
Config::get('store.qiniu.key');
自定义配置在框架初始化的时候是不会加载的,当第一次Config::get的时候,框架会自动加载该配置文件,前提条件是该配置文件必须 存放在/config目录下面,如果是多环境,存放在各自环境目录下面和和/config下面都可以,如dev环境,目录就是/config/dev目录
手动加载配置文件
当我们的配置文件没有存放在/config或多环境,如dev环境/config/dev目录下面的话,我们调用Config::get时,是不会自动加载的,这时,我们 就需要手动加载了
$config_file_path = ROOT_PATH . 'path/to/config.php';
$config = Config::load($config_file_path);
我们在加载配置文件时,可以将它合并到运行时配置,只需传入第二个参数runtime,之后就可以使用Config::runtime()方法来读取了
$config_file_path = ROOT_PATH . 'path/to/config.php';
Config::load($config_file_path, 'runtime');
如果配置文件在配置目录下面,比如/config/abc.config.php,我们可以这样加载:
abc.config.php
return [
'url' => 'http://www.timophp.com/',
'type' => [
'a' => 100,
'b' => 200,
],
];
$config = Config::load('abc');
$config打印出来就是上面abc配置文件的内容
Config::get('store.qiniu.bucket');
Config::load('abc', 'store');
将abc配置合并到store配置,然后就可以这样获取
$a = Config::get('store.type.a');
$a 打印出来就是 100
动态设置配置
最多支持三级配置
设置运行时配置
Config::setRuntime('cache.path', '/data/TimoSNS/var/cache/');
$path = Config::runtime('cache.path');
$path 打印出来就是 /data/TimoSNS/var/cache/
Config::setRuntime('cache', [
'type' => 'Redis',
'prefix' => 'T:'
]);
设置自定义配置
$a 打印出来就是 Index
Config::set('store.type.a', 'Index');
$a = Config::set('store.type.a');