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 强制性文件下载功能的函数代码(任意文件格式)
May 26 PHP
PHP-Fcgi下PHP的执行时间设置方法
Aug 02 PHP
php文件上传的例子及参数详解
Dec 12 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
Nov 18 PHP
php的闭包(Closure)匿名函数初探
Feb 14 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
非常实用的php验证码类
May 15 PHP
深入理解php printf() 输出格式化的字符串
May 23 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
PHP实现唤起微信支付功能
Feb 18 PHP
php简单检测404页面的方法示例
Aug 23 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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设计聊天室步步通
2006/10/09 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
PHP封装的PDO数据库操作类实例
2017/06/21 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
js有序数组的连接问题
2013/10/01 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
Dojo获取下拉框的文本和值实例代码
2016/05/27 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
微信小程序生成二维码的示例代码
2019/03/29 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
python中的闭包用法实例详解
2015/05/05 Python
Django框架中方法的访问和查找
2015/07/15 Python
Python数据结构之单链表详解
2017/09/12 Python
Python进程间通信之共享内存详解
2017/10/30 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
英语专业毕业生自我鉴定
2013/11/09 职场文书
优秀员工演讲稿
2014/05/19 职场文书
学校政风行风自查自纠报告
2014/10/21 职场文书
建筑工程催款函
2015/06/24 职场文书
2015年财务人员个人工作总结
2015/07/27 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android