Zend Framework教程之Zend_Config_Ini用法分析


Posted in PHP onMarch 23, 2016

本文实例讲述了Zend Framework教程之Zend_Config_Ini用法。分享给大家供大家参考,具体如下:

Zend_Config_Ini允许开发者通过嵌套的对象属性语法在应用程序中用熟悉的 INI 格式存储和读取配置数据。INI 格式在提供拥有配置数据键的等级结构和配置数据节之间的继承能力方面具有专长。配置数据等级结构通过用点或者句号 (.)分离键值。一个节可以扩展或者通过在节的名称之后带一个冒号(:)和被继承的配置数据的节的名称来从另一个节继承。

parse_ini_file

Zend_Config_Ini 使用parse_ini_file()PHP 函数。请复习这个文档了解它的特定行为,它在Zend_Config_Ini中使用,例如true, false, yes, no 和 null 这些特殊的值如何操作。

键分离器

缺省地,键分离器字符是句号(.)。然而,这个可以通过当构造Zend_Config_Ini对象时修改$options key 'nestSeparator' 被修改。例如:

$options['nestSeparator'] = ':';
$config = new Zend_Config_Ini('/path/to/config.ini',
               'staging',
               $options);

例 :使用 Zend_Config_Ini

这个例子示例了从 INI 文件加载配置数据的Zend_Config_Ini的基本用法。

在这个例子中有生产系统(production system)和开发系统(staging system)的配置数据。

因为开发系统配置数据和生产系统的配置数据类似,所以开发系统的节从生产系统的节继承。

在这个案例中,结果(decision)是任意的并且它可以反过来做,即生产系统节从开发系统节继承,尽管这不可能用于更复杂的情形。

接着,假定下面的配置数据包含在/path/to/config.ini中:

生产站点配置数据

[production]
webhost         = www.example.com
database.adapter     = pdo_mysql
database.params.host   = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname  = dbname

开发站点配置数据从生产站点配置数据集成并如果需要可以重写

[staging : production]
database.params.host   = dev.example.com
database.params.username = devuser
database.params.password = devsecret

接着,假定开发者需要从INI文件取开发配置数据。这非常简单,只要指定INI文件和开发系统节就可以加载这些数据了:

$config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
echo $config->database->params->host;  // 输出 "dev.example.com"
echo $config->database->params->dbname; // 输出 "dbname"

注意

表 Zend_Config_Ini 构造器参数:


参数 注释
$filename 要加载的 INI 文件。
$section 在INI文件中 [section] (节)将被加载。把这个参数设置为null,所有的节将被加载。另外,一个节名称的数组被提供给加载多个节。
$options = false 选项数组。下面的键被支持: allowModifications:设置为true 允许随后加载文件更改。缺省为false nestSeparator: 设置嵌套字符。缺省为"."

希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP mb_convert_encoding文字编码的转换函数介绍
Nov 10 PHP
一个好用的PHP验证码类实例分享
Dec 27 PHP
php实现的css文件背景图片下载器代码
Nov 11 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
Yii2实现让关联字段支持搜索功能的方法
Aug 10 PHP
php实时倒计时功能实现方法详解
Feb 27 PHP
php连接mysql数据库
Mar 21 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
php通过各种函数判断0和空
Jul 04 PHP
使用vs code编辑调试php配置的方法
Jan 29 PHP
PHP正则获取页面所有图片地址
Mar 23 #PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 #PHP
php获取文件后缀的9种方法
Mar 22 #PHP
Zend Framework教程之Zend_Registry对象用法分析
Mar 22 #PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 #PHP
Zend Framework框架Smarty扩展实现方法
Mar 22 #PHP
Zend Framework框架路由机制代码分析
Mar 22 #PHP
You might like
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
php牛逼的面试题分享
2013/01/18 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
强制设为首页代码
2006/06/19 Javascript
Javascript学习笔记2 函数
2010/01/11 Javascript
javascript 自动填写表单的实现方法
2010/04/09 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
详解JavaScript自定义函数
2020/07/29 Javascript
Mac 上切换Python多版本
2017/06/17 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
基于python实现雪花算法过程详解
2019/11/16 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
static关键字的用法
2013/10/07 面试题
2014县政府领导班子三严三实对照检查材料思想汇报
2014/09/26 职场文书
教学改革问题查摆整改措施
2014/09/27 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
二胎满月酒致辞
2015/07/29 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
话题作文之生命的旋律
2019/12/17 职场文书