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初学者(入门学习经验谈)
Oct 12 PHP
php常用Stream函数集介绍
Jun 24 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
zf框架的数据库追踪器使用示例
Mar 13 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
php通过修改header强制图片下载的方法
Mar 24 PHP
php实现的简单数据库操作Model类
Nov 16 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
利用php-cli和任务计划实现订单同步功能的方法
May 03 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 PHP
php双向队列实例讲解
Nov 17 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命名空间学习详解
2014/02/27 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
JS定时器实例
2013/04/17 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
validform表单验证的实现方法
2019/03/08 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
python3实现暴力穷举博客园密码
2016/06/19 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
python添加菜单图文讲解
2019/06/04 Python
python命令行参数用法实例分析
2019/06/25 Python
利用python-docx模块写批量生日邀请函
2019/08/26 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
网络工程师个人的自我评价范文
2013/10/01 职场文书
大学生文员专业个人求职信范文
2014/01/05 职场文书
应用化学专业职业生涯规划书
2014/01/22 职场文书
技能比赛获奖感言
2014/02/14 职场文书
竞选部长演讲稿
2014/04/26 职场文书
品质口号大全
2014/06/17 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
管理人员岗位职责
2015/02/14 职场文书
导游词之岳阳楼
2019/09/25 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
java解析XML详解
2021/07/09 Java/Android
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis
如何Tomcat中使用ipv6地址
2022/05/06 Servers