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 验证码的实现代码
Jul 17 PHP
简单的PHP缓存设计实现代码
Sep 30 PHP
CI框架源码阅读,系统常量文件constants.php的配置
Feb 28 PHP
具有时效性的php加密解密函数代码
Jun 19 PHP
关于js和php对url编码的处理方法
Mar 04 PHP
php生成短网址示例
May 05 PHP
php实现简单文件下载的方法
Jan 30 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
php使用number_format函数截取小数的方法分析
May 27 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
Oct 14 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
各种咖啡的英文名子是什么
2021/03/03 新手入门
PHP 高手之路(二)
2006/10/09 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
Web开发之JavaScript
2012/03/29 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
简单实现JS对dom操作封装
2015/12/02 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
NodeJS配置HTTPS服务实例分享
2017/02/19 NodeJs
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
Vuex新手的理解与使用详解
2019/05/31 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
python使用pymysql实现操作mysql
2016/09/13 Python
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
python读写csv文件方法详细总结
2019/07/05 Python
Python Django基础二之URL路由系统
2019/07/18 Python
深入浅析python的第三方库pandas
2020/02/13 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
八年级物理教学反思
2014/01/19 职场文书
体育专业求职信
2014/07/16 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
PHP RabbitMQ消息列队
2022/05/11 PHP