多数大学生出来选择的工作和专业无关
首页 > 专业知识

使用PHP处理XML配置文件

时间:2017-08-17 18:18:57 [来源]:郑州PHP培训学校

   使用PHP处理XML配置文件

  作为一条通用规则,开发任何稍微复杂的软件时,最好花点时间确定产品的重要配置变量,并将其从标准变量名称空间中取出来放到单独的位置。这样处理后就能形成集中的应用程序配置信息存储库,从而简化在不同环境中工作时对产品的修改。还有助于开发人员熟悉和理解产品成功运行所需要的重要信息。
  传统上,配置变量存储在一个(或多个)配置文件中。这些变量常常用 XML 表示,XML 提供了一个灵活的框架允许文档作者使用自定义的标签和标记描述内容。多数情况下,开发人员还需要建立与这些 XML 配置文件交互的用户接口,读取和使用包含的配置数据。
  XJConf for PHP 可帮助 PHP 开发人员完成这项任务。这个开源的包提供了一种 API,从配置文件中提取 XML 编码的信息,转化成原生数据结构直接在应用程序中使用。同样地,它也为所有的 PHP 应用程序提供了一种健壮的、易用的部件。
  安装需要的软件
  XJConf 包由 Frank Kleine 和 Stephan Schmidt 维护,按照 GNU LGPL 协议在 PHP 社区发布。它需要 PHP 5.0(或更高版本),最简单的安装方法是使用 PEAR 自动安装程序,后者默认情况下包含在 PHP 中。安装只需在 shell 提示符下输入下列命令即可:
  shell> pear channel-discover pear.php-tools.net
  shell> pear install pat/XJConfForPHP-alpha
  PEAR 安装程序将连接到新的通道,下载这个程序包并安装到系统中适当的位置。本文使用的是 XJConf for PHP V. 0.2.0。
  手动安装需要访问主页,下载源代码压缩包,手动解压到目标位置。可以在本文的 参考资料 部分找到该程序包的主页以及正在开发版本的链接。需要注意的是手工安装之前必须对 PEAR 程序包的组织结构有所了解。
  最后一点要求:XJConf for PHP 需要启用 PHP 的 xmlreader 扩展。PHP 5.1.0 或以上版本默认启用该扩展。老版本 PHP 用户可从 PHP 手册(链接见 参考资料)的适当章节获取详细信息和激活方法。
  本文假设您使用过 PHP 和 XML,熟悉 PHP 的简单和复杂数据类型。假设对一般 OOP 概念和 PHP 5 的类模型有一定的了解,对 PHP 文档对象模型(DOM)扩展生成 XML 树也有所了解。
  理解基本用法
  XJConf 为 PHP 应用程序开发人员提供了一个 API,可以读取 XML 格式配置文件并转化成原生 PHP 数据类型或自定义对象。然后即可按照通常的方式在 PHP 脚本中使用这些类型或对象。任何基于 XJConf 的程序都包括三部分:
  XML 格式的配置文件
  解析和提取配置文件数据的 PHP 脚本
  将配置文件中的元素映射到原生 PHP 结构的定义文件
  最好用一个例子来说明三者之间的联系。清单 1 显示了关于宠物猫的配置文件:
  清单 1. XML 配置文件(cat.xml)
  <?xml version='1.0'?>
  <cat>
  <name>Martha</name>
  <age>4</age>
  <breed>Siamese</breed>
  </cat>
  假设需要将这些配置值读入 PHP 应用程序。首先要创建一个定义文件,将 清单 1 中的每个元素映到一种 PHP 原生数据类型。清单 2 给出了一个例子:
  清单 2. XJConf 定义文件(defs.xml)
  <defines>
  <tag name="name" type="string"/>
  <tag name="breed" type="string"/>
  <tag name="age" type="integer"/>
  </defines>
  先研究一下定义文件的结构,因为理解该文件对后面所有的例子至关重要。外层的 <defines> 元素包含一系列 <tag> 元素,分别代表 XML 配置文件中的一个元素。每个 <tag> 必须至少具有 name 和 type 属性。name 属性指定配置文件中的元素名,type 属性则指定对应的 PHP 数据类型。常见的基本类型有 string、integer 和 boolean,不过,后面将看到还能将元素映射为数组或自定义类。
  最后还需要一个 PHP 脚本初始化 XJConf 实例,并使用 清单 2 中的定义检索配置数据。清单 3 显示了需要的 PHP 代码:
  清单 3. 读取 XML 配置数据的 PHP 脚本
  <?php
  // include XJConf class file
  include_once 'XJConf/XJConfLoader.php';
  // load facade
  XJConfLoader::load('XJConfFacade');
  $conf = new XJConfFacade();
  // attach definitions to parser
  $conf->addDefinition('defs.xml');
  // parse XML
  $conf->parse('cat.xml');
  // access XML element values
  echo $conf->getConfigValue('name') . " is " . $conf->getConfigValue('breed')
  . " and " . $conf->getConfigValue('age') . " year(s) old.";
  ?>

上一篇:用PHP构建自定义搜索引擎

下一篇:成就PHP高手的五个必由之路