博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入浅出理解zend framework(三)
阅读量:5068 次
发布时间:2019-06-12

本文共 1951 字,大约阅读时间需要 6 分钟。

 Zend_Config

      开篇中提到,一切zf程序的起点都是index.phpzend_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]

      [staging:live]

      phpSettings.display_errors=1

      [dev:live]

      phpSettings.display_errors=1

 

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

 

 

 

 

 

类图

 

类说明:

class Zend_Config_Ini

{

     

     

     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的嵌套

序列图

 

 

 

 

其他图

 

相关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()方法进行整合。

 

 

转载于:https://www.cnblogs.com/abner-liu/archive/2012/03/04/2379148.html

你可能感兴趣的文章
HTML列表,表格与媒体元素
查看>>
雨林木风 GHOST_XP SP3 快速装机版YN12.08
查看>>
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
设计器 和后台代码的转换 快捷键
查看>>
STL容器之vector
查看>>
数据中心虚拟化技术
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(4)--外部项目选取器和业务数据连接...
查看>>
oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec
查看>>
基于grunt构建的前端集成开发环境
查看>>
利用循环播放dataurl的视频来防止锁屏:NoSleep.js
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
Abstract Factory Pattern
查看>>