Zend Framework教程之Zend_Config_Xml用法分析

 更新时间:2016年03月23日 08:54:43   作者:haiwei.sun  
这篇文章主要介绍了Zend Framework教程之Zend_Config_Xml用法,结合实例形式较为详细的分析了Zend_Config_Xml的功能,使用方法及相关注意事项,需要的朋友可以参考下

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

Zend_Config_Xml 让开发者能够存储配置数据到一个简单XML格式并通过嵌入对象属性语法来读取。

XML文件的根元素(root element)不相关并可以任意命名。顶级的XML元素和配置数据的节相对应。

XML格式通过嵌入XML元素到节一级元素(section-level elements)的下面来支持等级结构组织。

叶一级(leaf-level)的XML元素和配置数据的值相对应。节继承通过一个特殊的XML属性名为extends来支持,与之相对应的这个属性的值通过扩展节(extending section)来继承.

返回类型

读入Zend_Config_Xml中的配置数据总是返回字串。数据从字符串到其它类型的转换留给开发者来适应他们特定的需求。

例: 使用Zend_Config_Xml

这个例子示例了从INI文件加载配置数据的Zend_Config_Xml的基本用法。在这个例子中有生产系统(production system)和开发系统(staging system)的配置数据。因为开发系统配置数据和生产系统的配置数据类似,所以开发系统的节从生产系统的节继承。在这个案例中,结果(decision)是任意的并且它可以反过来做,即生产系统节从开发系统节继承,尽管这不可能用于更复杂的情形。接着,假定下面的配置数据包含在/path/to/config.xml中:

<?xml version="1.0"?>
<configdata>
  <production>
    <webhost>www.example.com</webhost>
    <database>
      <adapter>pdo_mysql</adapter>
      <params>
        <host>db.example.com</host>
        <username>dbuser</username>
        <password>secret</password>
        <dbname>dbname</dbname>
      </params>
    </database>
  </production>
  <staging extends="production">
    <database>
      <params>
        <host>dev.example.com</host>
        <username>devuser</username>
        <password>devsecret</password>
      </params>
    </database>
  </staging>
</configdata>

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

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


例 :在 Zend_Config_Xml 使用标签(tag)属性

Zend_Config_Xml 也支持另外两种方法在配置文件里定义节点。它们都利用属性。 因为 extends 和 value 属性是保留关键字(后者是第二种使用属性的方法),它们可能不被使用。 第一种方法使用属性是把属性添加到父节点,它本身就变成了子节点:

<?xml version="1.0"?>
<configdata>
  <production webhost="www.example.com">
    <database adapter="pdo_mysql">
      <params host="db.example.com" username="dbuser" password="secret" dbname="dbname"/>
    </database>
  </production>
  <staging extends="production">
    <database>
      <params host="dev.example.com" username="devuser" password="devsecret"/>
    </database>
  </staging>
</configdata>

另一种方法也不会使配置文件变小,但使维护变得容易,是因为你需要要写标签名两次。你可以创建一个空标签,它在 value 属性里包含它的值:

<?xml version="1.0"?>
<configdata>
  <production>
    <webhost>www.example.com</webhost>
    <database>
      <adapter value="pdo_mysql"/>
      <params>
        <host value="db.example.com"/>
        <username value="dbuser"/>
        <password value="secret"/>
        <dbname value="dbname"/>
      </params>
    </database>
  </production>
  <staging extends="production">
    <database>
      <params>
        <host value="dev.example.com"/>
        <username value="devuser"/>
        <password value="devsecret"/>
      </params>
    </database>
  </staging>
</configdata>

更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

相关文章

  • Zend Framework教程之资源(Resources)用法实例详解

    Zend Framework教程之资源(Resources)用法实例详解

    这篇文章主要介绍了Zend Framework教程之资源(Resources)用法,结合实例形式详细分析了Resources的功能,定义,使用方法与相关注意事项,需要的朋友可以参考下
    2016-03-03
  • Thinkphp 框架扩展之数据库驱动常用方法小结

    Thinkphp 框架扩展之数据库驱动常用方法小结

    这篇文章主要介绍了Thinkphp 框架扩展之数据库驱动常用方法,总结分析了Thinkphp数据库驱动常用方法、功能及相关使用注意事项,需要的朋友可以参考下
    2020-04-04
  • YII框架页面缓存操作示例

    YII框架页面缓存操作示例

    这篇文章主要介绍了YII框架页面缓存操作,结合实例形式分析了Yii框架页面缓存的开启、关闭、设置等相关功能与实现技巧,需要的朋友可以参考下
    2019-04-04
  • php使用正则验证密码字段的复杂强度原理详细讲解

    php使用正则验证密码字段的复杂强度原理详细讲解

    密码涉及到安全问题,所以密码设计的复杂程序尤为重要。通常密码由大小写字母、数字、特殊符号组成。一般情况下前端可不做js判断,使用ajax提交php后端程序接口,由后端判断后返回json数据,进行用户密码复杂程序提示。
    2022-11-11
  • thinkphp3.2实现上传图片的控制器方法

    thinkphp3.2实现上传图片的控制器方法

    这篇文章主要介绍了thinkphp3.2实现上传图片的控制器方法,结合实例形式分析了thinkPHP图片文件上传相关的文件类型判断,文件路径及相关属性操作技巧,需要的朋友可以参考下
    2016-04-04
  • yii2利用自带UploadedFile实现上传图片的示例

    yii2利用自带UploadedFile实现上传图片的示例

    本篇文章主要介绍了yii2利用自带UploadedFile实现上传图片的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • laravel异步监控定时调度器实例详解

    laravel异步监控定时调度器实例详解

    这篇文章主要给大家介绍了关于laravel异步监控定时调度器的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • Yii+MYSQL锁表防止并发情况下重复数据的方法

    Yii+MYSQL锁表防止并发情况下重复数据的方法

    这篇文章主要介绍了Yii+MYSQL锁表防止并发情况下重复数据的方法,分析了MySQL读锁定、写锁定及Yii实现MySQL读写锁定的相关技巧,需要的朋友可以参考下
    2016-07-07
  • php设计模式之模板模式实例分析【星际争霸游戏案例】

    php设计模式之模板模式实例分析【星际争霸游戏案例】

    这篇文章主要介绍了php设计模式之模板模式,基于星际争霸游戏案例形式分析了php模板模式相关原理与使用技巧,需要的朋友可以参考下
    2020-03-03
  • 详解Yii2.0 rules验证规则集合

    详解Yii2.0 rules验证规则集合

    本篇文章主要介绍了详解Yii2.0 rules验证规则集合 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03

最新评论