zend config 分析

介绍

zend 是我对php框架ZendFramework的简称,现在主要有三个版本,因为工作原因,我平时接触的版本以ZendFramework 1.x 居多。

本文以源码为引,简单介绍了框架中配置文件加载有关的逻辑。

过程

我们在使用zend框架,通常会在index.php文件中看见这样的代码:

   $config = new Zend_Config_Ini(dirname(dirname(__FILE__)) . '/config.ini', 'production');
   $options = $config->toArray();
   $config = new Zend_Config($options);

 首先我们需要知道.ini文件的构成,比如

[production]

my.url="http://127.0.0.1:9000/"

[dev]

kid.config.port=2202

 

其中[production] [dev] 是section 可以理解为配置的分组,Zend_Config_Ini的第二个参数指定的就是这个分组,如果填写了section 则只获取此分组的配置。

上面配置的http://127.0.0.1:9000/, 可以使用$config->my->url获取。

如果配置toArray转化为数组,需要使用$config['my']['url']获取。

 

看似很简单的功能,框架的作者通过定义Config父类实现通用方法,使用不同子类适配不同格式的配置文件。

 

 

另外提一点,使用Zend_Config_Yaml 解析 docker-compose配置文件 对-配置的文件并不友好或者解析不出来。

$yml = new Zend_Config_Yaml(dirname(dirname(__FILE__)) . '/docker-compose.yml');
var_export($yml->toArray());exit;

 new Zend_Config_Ini实例化Zend_Config_Ini类

 

框架在类中使用的异常处理值得学习。

 

posted @ 2020-07-23 22:15  阿飞afei  阅读(149)  评论(0编辑  收藏  举报