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编写PDF文档生成器
Oct 09 PHP
php实现的在线人员函数库
Apr 09 PHP
php 删除记录实现代码
Mar 12 PHP
基于php缓存的详解
May 15 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
php字符串替换函数substr_replace()用法实例
Mar 17 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
微信利用PHP创建自定义菜单的方法
Aug 01 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 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位运算的简单权限设计
2013/06/30 PHP
php图片添加水印例子
2016/07/20 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
跟老齐学Python之Python文档
2014/10/10 Python
pygame学习笔记(2):画点的三种方法和动画实例
2015/04/15 Python
Python正则表达式使用范例分享
2016/12/04 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
带你认识Django
2019/01/15 Python
python简单实现AES加密和解密
2019/03/28 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
英国婴儿产品专家:Samuel Johnston
2020/04/20 全球购物
酒店保安员岗位职责
2014/01/31 职场文书
教学个人的自我评价分享
2014/02/16 职场文书
公务员政审单位鉴定材料
2014/05/16 职场文书
我爱我校演讲稿
2014/05/21 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
大一新生军训新闻稿
2015/07/17 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL