php配置加载器
配置加载器
当我们使用App::cfg系列方法获取配置时,wulaphp是通过配置加载器先加载配置然后再返回配置项对应值的(当然可以返回整个配置数组)。配置加载器ConfigurationLoader有两个方法:
- loadConfig - 加载普通配置并返回Configuration实例或其子类的实例。
- loadDatabaseConfig - 加载数据库配置并返回DatabaseConfiguration实例。
除了上边的两个方法还有两个方法(来自BaseConfigurationLoader):
- beforeLoad - 加载默认配置前执行
- postLoad - 加载默认配置后执行
默认的加载器已经可以很好的工作了,如果不能满足你,请自定义你的配置加载器。默认配置在应用(App)启动时加载(具体加载流程见请求处理),其它组的配置则按需加载。
自定义配置加载器
如果你不想从php文件加载配置甚或你不想从本地加载配置,你都可以自己实现配置加载器按你自己需要去加载配置,只要记得最后返回一个Configuration实例就行。下边代码示例从ini文件(也放在conf目录下)加载配置:
class MyConfigurationLoader extends ConfigurationLoader {
public function loadConfig($name = 'default') {
$config = new Configuration($name);
$file = CONFIG_PATH . $name . '.ini';
if (is_file($file)) {
$cfg = parse_ini_file($file, true);
if ($cfg) {
$config->setConfigs($cfg);
}
}
return $config;
}
}
O了,自定义加载器完成,可以加载普通的配置了,要想加载『数据库配置』请实现loadDatabaseConfig方法。
使用自定义配置加载器
有了自定义加载器类就可以修改bootstrap.php文件中的CONFIG_LOADER_CLASS常量了:
define('CONFIG_LOADER_CLASS', 'MyConfigurationLoader');
重点说明: 要写全类名(包含命名空间的)。
自定义加载器完成。
相关文章
- solr性能优化
一、简介 Solr性能优化是一个很复杂的任务,也是一个长期与之斗争的过程。在开始之前,首先要对影响Solr性能的基本因素有个大致的认知。影响Solr性能的一个主要因素就是内存。Solr需要有足够的内
- redis 主从复制
一、集群的作用 1.主从备份 防止主机宕机 2.读写分离 分担master的任务 3.任务分离,如从服务器分别担任备份工作与计算工作 二、redis集群配置 Master配置 1、关闭rdb快照
- php手动编译fileinfo扩展
某些同学在执行php composer.phar install时,出现错误 90%可能是漏装了PHP的fileinfo扩展了,用宝塔的请直接在宝塔里安装 下载并解压PHP源码包(内含fileinfo
- aof恢复与rdb服务器迁移
一、不小心flushall或flushdb了怎么办??? 只有aof还不够。 因为如果发生重写,aof文件里就什么都没有了。 所以要及时shutdown nosave,防止aof重写!!! 然后将a
- 反向代理缓存
一、传统代理 很久以前,我们通常需要通过代理服务器来访问互联网上的Web站点,代理服务器本身接入了互联网,而我们通过内部网络与代理服务器相连。即便是现在,有些时候为了访问一些由于某种原因无法直接访问
随机推荐
- solr性能优化
一、简介 Solr性能优化是一个很复杂的任务,也是一个长期与之斗争的过程。在开始之前,首先要对影响Solr性能的基本因素有个大致的认知。影响Solr性能的一个主要因素就是内存。Solr需要有足够的内
- redis 主从复制
一、集群的作用 1.主从备份 防止主机宕机 2.读写分离 分担master的任务 3.任务分离,如从服务器分别担任备份工作与计算工作 二、redis集群配置 Master配置 1、关闭rdb快照
- php手动编译fileinfo扩展
某些同学在执行php composer.phar install时,出现错误 90%可能是漏装了PHP的fileinfo扩展了,用宝塔的请直接在宝塔里安装 下载并解压PHP源码包(内含fileinfo
- aof恢复与rdb服务器迁移
一、不小心flushall或flushdb了怎么办??? 只有aof还不够。 因为如果发生重写,aof文件里就什么都没有了。 所以要及时shutdown nosave,防止aof重写!!! 然后将a
- 反向代理缓存
一、传统代理 很久以前,我们通常需要通过代理服务器来访问互联网上的Web站点,代理服务器本身接入了互联网,而我们通过内部网络与代理服务器相连。即便是现在,有些时候为了访问一些由于某种原因无法直接访问