Zend_Config使用笔记

1.zend_Config被设计在应用程序中简化访问和使用配置数据。它为在应用程序代码中访问这样的配置数据提供了一个基于用户接口的嵌入式对象属性。配置数据可能来自于各种支持等级结构数据存储的媒体

// 给出一个配置数据的数组 $configArray = array( ‘webhost’ => ‘localhost’, ‘database’ => array( ‘adapter’ => ‘pdo_mysql’, ‘params’ => array( ‘host’ => ‘localhost, ‘username’ => ‘dbuser’, ‘password’ => ‘secret’, ‘dbname’ => ‘mydatabase’ ) ) );

// 基于配置数据创建面向对象 $config = new Zend_Config($configArray);

// 输出配置数据 (结果为’localhost’中) echo $config->webhost;

// 使用配置数据来连接数据库 $db = Zend_Db::factory($config->database->adapter, $config->database->params->toArray());

// 另外的用法:简单地传递 Zend_Config 对象。 // Zend_Db factory 知道如何翻译它。 $db = Zend_Db::factory($config->database);

PS:还可这样使用 // config.php return array( ‘webhost’ => ‘localhost’, ‘database’ => array( ‘adapter’ => ‘pdo_mysql’, ‘params’ => array( ‘host’ => ‘localhost’, ‘username’ => ‘dbuser’, ‘password’ => ‘secret’, ‘dbname’ => ‘mydatabase’ ) ) ); 然后$config = new Zend_Config(require ‘config.php’);

2.理论

配置数据在Zend_Config构造器通过关联数组(associative arrary)可访问,为了支持从通用到特殊组织数据,它可以是多维的。具体的适配器类函数为Zend_Config的构造器从存储到处理关联数组来适应配置数据。配置数据通过Zend_Config可用是只读的! Zend_Config函数家族把配置数据组织成节(section)。Zend_Config适配器对象可以带一个指定的节加载,或者带有多个指定的节,或者所有节(如果没有指定)。 这里说的节就是config/application.ini内容中 [mysql] db.adapter=PDO_MYSQL db.params.host=localhost db.params.username=root db.params.password=Joyous db.params.dbname=test db.params.charset=utf8 注意这里的属性是固定内容

3.Zend_Config_Ini

我们开发和上线的产品使用的数据库是不一样的,这个时候就显示了这个Zend_Config_Ini的威力 比如 ; 上线数据库 [production] webhost = www.0377joyous.com database.adapter = pdo_mysql database.params.host = localhost database.params.username = root database.params.password = 123456 database.params.dbname = production

; 开发站点配置数据从生产站点配置数据集成并如果需要可以重写 [staging : production] database.params.host = localhost database.params.username = test database.params.password = 123 $config = new Zend_Config_Ini(‘/path/to/config.ini’, ‘staging’); 这样我们会在开发的时候加载了[staging : production]来覆盖掉上面的配置production

4.Zend_Config_Xml(使用基本和Zend_Config_Ini雷同,具体可以参考手册)

附:在使用Zend_Config_Ini经常我们看到DIRECTORY_SEPARATOR这个常量和constant其中DIRECTORY_SEPARATOR是代表分割符号(在windows和linux是不一样的)constant是返回常量值 realpath是将路径转换成绝对路径(也就是文档在硬盘上存放的距离位置)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JackieZheng

学习SpringMVC——如何获取请求参数

  @RequestParam,你一定见过;@PathVariable,你肯定也知道;@QueryParam,你怎么会不晓得?!还有你熟悉的他(@CookieV...

2895
来自专栏阿杜的世界

Spring实战5-基于Spring构建Web应用主要内容

写在前面:关于Java Web,首先推荐一篇文章——写给java web一年左右工作经验的人,这篇文章的作者用精练的话语勾勒除了各种Java框架的缘由和最基本的...

1162
来自专栏Java 技术分享

SpringMVC(二)

1643
来自专栏JAVA同学会

Spring Data(一)概念和仓库的定义

Spring Data的主要任务是为数据访问提供一个相似的、一致的、基于Spring的编程模型,同时又保留着下面各个数据存储的特征。它使得使用数据访问技术非常的...

1321
来自专栏技术博文

file_put_contents— 将一个字符串写入文件

将字符串写入到文件中,我们可以用fwrite写文件函数进行操作,今天写程序的时候,突然觉得其实file_put_contents()函数,用来写入字符串,后来仔...

3927
来自专栏Java架构师历程

Spring工作原理

      内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、...

2172
来自专栏互联网大杂烩

Spring MVC框架

前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resol...

742
来自专栏Java学习之路

Hibernate学习---基本介绍+作用+配置

从今天开始重新学习(以前学的太匆忙)Hibernate,这篇文章主要就一下几点进行讲解和说明: Hibernate的基本介绍 Hibernate的作用 Hibe...

2897
来自专栏Web项目聚集地

从零学习Spring MVC框架「RESTful风格实践」

学习本文章之前,我们需要知道什么是RESTful API,还对此不了解的朋友可以移步历史文章 RESTful 接口实现简明指南 ,简单来说就是就是用URL定位资...

1901
来自专栏java工会

Spring工作原理

内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、...

911

扫码关注云+社区

领取腾讯云代金券