免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1597 | 回复: 1

深入浅出理解zend framework(三) [复制链接]

论坛徽章:
0
发表于 2012-03-04 15:07 |显示全部楼层
深入浅出理解zend framework(三)









Zend_Config

      开篇中提到,一切zf程序的起点都是index.php和zend_application。它主要完成各种配置项目的加载并通过run方法,将请求转发给前端控制器。

      配置文件的加载,是通过Zend_config来完成的,我们来看一下它是如何工作的。

      一般情况下,我们会在初始化zend_loader后,紧跟着就初始化zend_config,并读取configs中的application.ini主配置文件。

              $config = new Zend_Config_Ini($filename,$section, $options);

      第一个参数是指明要加载的配置文件地址,第二个参数是说明要加载哪一节配置(比如生产环境配置,开发环境配置)

      Zend_config_ini的构造函数,首先会执行$this->loadIniFile()将该文件加载进来。然后根据$section的配置,确定是全部读取,还是只读取某一节。然后调用$this->_processSection()读取小节。$this->_processSection()中再调用$this->_processKey()读取具体配置信息。

      下面介绍一下配置文件的书写方式,有一点需要说明,配置文件里面的小节命名方式有的会包含冒号分隔符,这是为了适应不同环境下配置而设置的分隔符。冒号前面为条件,后面为小节名,会根据参数来决定读取哪一节配置。每一行具体配置的名称,可以用.来进行分隔。这样配置文件的结构就是:节(->组(.)->配置信息



      配置文件书写方式:

      如果有多种环境,可以通过:来进行配置,比如在生产环境下使用以下配置

      [live]

      phpSettings.display_errors=0

      在测试环境下和开发环境下,需要显示错误,可以在[live]段全部写完后,增加[staging:live]和[dev:live]段

[/code]

        Zend_config_ini构造函数的第二个参数$section,会决定加载哪一段配置。该参数如果为null,会加载所有配置











类图

1.jpg



类说明:
  1. class Zend_Config_Ini

  2. {
复制代码
Proectced function _parseIniFile($filename)//调用php内置函数parse_ini_file解析读入的配置文件, process_sections 参数设为 TRUE。

     protected function _loadIniFile($filename)//加载配置文件,调用_parseIniFile解析成数组,对于存在:号的可选配置,进行重命名,:号前的作为数组key,:号后的内容融合到value中。

     protected function _processSection($iniArray, $section, $config = array())//处理每一个小节

     protected function _processKey($config, $key, $value)//处理每一个key,包括key的嵌套

序列图



2.jpg







其他图



相关PHP内置函数:

     解析配置文件:

     Array parse_ini_file( string $filename [, bool $process_sections ] )

     应用文件:Ini.php

     应用目的:载入一个由 filename 指定的 ini 文件,并将其中的设置作为一个联合数组返回。如果将最后的 process_sections 参数设为 TRUE,将得到一个多维数组,包括了配置文件中每一节的名称和设置。process_sections 的默认值是 FALSE。

                   在iniphp中,该函数被封装在_parseIniFile方法中,process_sections被设置为true;

   

     合并数组:array_merge(array1,array2,array3...)

     应用文件:Ini.php

     应用目的:处理带:号的小节,将:号前面的字符作为小节名,:号后面的内容融合到内容数组中。





在项目中的应用:

      在application/configs/application.ini中配置各种信息,也可以增加其他ini文件,然后在index.asp中调用 Zend_Config的merge()方法进行整合。



论坛徽章:
0
发表于 2012-03-04 15:08 |显示全部楼层
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP