Zend Framework教程之Zend_Config_Ini用法分析

作者:haiwei.sun 时间:2024-05-13 09:23:47 

本文实例讲述了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程序设计有所帮助。

标签:Zend,Framework,Zend,Config,Ini
0
投稿

猜你喜欢

  • MySQL使用IF函数动态执行where条件的方法

    2024-01-25 02:46:34
  • 当恢复sqlserver bak文件时,原始的用户无法删除的解决方法

    2024-01-15 07:59:00
  • 使用Go语言解决Scan空格结束输入问题

    2024-04-27 15:38:37
  • 在Java程序中使用数据库的新方法

    2024-01-20 00:55:35
  • 解决MySQL 5.0不能使用自动增加字段问题

    2008-12-02 14:30:00
  • 省市县三级联动的SQL语句

    2024-01-12 14:51:52
  • python 实现两个npy档案合并

    2022-08-20 13:29:55
  • Python实现统计代码行的方法分析

    2023-10-15 13:08:44
  • keras 指定程序在某块卡上训练实例

    2023-07-15 09:15:42
  • Python openpyxl读取单元格字体颜色过程解析

    2023-02-09 06:57:02
  • Python-OpenCV深度学习入门示例详解

    2022-07-24 02:44:24
  • pycharm2022.2远程连接服务器调试代码实现

    2022-11-17 12:12:48
  • Python实现生成随机日期字符串的方法示例

    2023-10-27 11:51:37
  • python函数中return后的语句一定不会执行吗?

    2022-03-25 04:06:44
  • MySQL 通过索引优化含ORDER BY的语句

    2024-01-12 19:16:06
  • 详解如何用OpenCV + Python 实现人脸识别

    2021-07-07 19:22:35
  • Python3 socket即时通讯脚本实现代码实例(threading多线程)

    2022-05-20 08:52:17
  • JS分割字符串并放入数组的函数

    2023-08-05 15:31:03
  • MySQL服务维护笔记第1/2页

    2024-01-27 02:08:03
  • Python协程的四种实现方式总结

    2022-12-23 04:41:59
  • asp之家 网络编程 m.aspxhome.com