Zend Framework入门教程之Zend_Config组件用法详解


Posted in PHP onDecember 09, 2016

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

1.从PHP数组中读取数据

使用Zend_Config_Ini(读取ini配置文件)
Zend_Config_Xml(读取XML配置文件)

案例:

<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Config');
$array = array(
  'webhost' => '127.0.0.1',
  'database'=>array(
    'db_host'=>'localhost',
    'db_user'=>'root',
    'db_pass'=>'123',
    'db_name'=>'test'
    )
  );
$config = new Zend_Config($array);
echo "Web服务器地址为:";
echo $config->webhost;
echo "<p>";
echo "数据库服务器名称为:";
echo $config->database->db_host;
echo "<p>";
echo "数据库用户名为:";
echo $config->database->db_user;
echo "<p>";
echo "数据库密码为:";
echo $config->database->db_pass;
echo "<p>";
echo "数据库名称为:";
echo $config->database->db_name;
echo "<p>";

结果:

Web服务器地址为:127.0.0.1
数据库服务器名称为:localhost
数据库用户名为:root
数据库密码为:123
数据库名称为:test

说明:

初始化Zend_Config类时,将数组中的数据直接变成$config对象的属性值了。

2.从PHP配置文件读取数据

案例:

(1)首先是配置文件,代码如下。

<?php
return array(
  'webhost' => '127.0.0.1',
  'database' => array(
    'db_host' => 'localhost',
    'db_user' => 'root',
    'db_pass' => '123',
    'db_name' => 'test'
    )
);

(2)创建读取配置的PHP文件,代码如下。

<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Config');
$filename = 'config.php';            //定义配置文件名
$config = new Zend_Config(require $filename);  //为类实例化对象
echo "Web服务器地址为:";
echo $config->webhost;
echo "<p>";
echo "数据库服务器名称为:";
echo $config->database->db_host;
echo "<p>";
echo "数据库用户名为:";
echo $config->database->db_user;
echo "<p>";
echo "数据库密码为:";
echo $config->database->db_pass;
echo "<p>";
echo "数据库名称为:";
echo $config->database->db_name;
echo "<p>";

说明:结果同之前的一样,只是这次读取数据是从php文件中获取的。一般需要的配置信息,无非是数据库名,用户名,密码等。

3.从ini文件中读取数据

Zend_Config组件的子类Zend_Config_Ini允许从ini配置文件中读取数据。

案例:

(1)建立一个用于被读取内容的ini配置文件,代码如下。

[database]
hostname = localhost
database.type = mysql
database.host = localhost
database.user = root
database.pass = 123
database.name = test_ini

保存为config.ini

(2)建立读取配置文件内容的PHP文件,代码如下。

<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Config_Ini');
$filename = 'config.ini';            //定义配置文件名
$config = new Zend_Config_Ini($filename,'database');  //为类实例化对象
echo "数据库服务器名称为:";
echo $config->hostname;
echo "<p>";
echo "数据库类型为:";
echo $config->database->type;
echo "<p>";
echo "数据库用户名为:";
echo $config->database->user;
echo "<p>";
echo "数据库密码为:";
echo $config->database->pass;
echo "<p>";
echo "数据库名称为:";
echo $config->database->name;
echo "<p>";

说明:实例化对象之后,指定相应的参数,就可以使用配置文件中的信息了。

结果为:

数据库服务器名称为:localhost
数据库类型为:mysql
数据库用户名为:root
数据库密码为:123
数据库名称为:test_ini

4.以数组的形式调用ini中读出的数据

用toArray()方法来实现转化

案例:

<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Config_Ini');
$filename = 'config.ini';            //定义配置文件名
$config = new Zend_Config_Ini($filename,'database');  //为类实例化对象
$temp = $config->database->toArray();      //使得其中一个属性的数据转为数组,并将数据赋给变量$temp
echo "数据库类型为:";
echo $temp[type];
echo "<p>";
echo "数据库用户名为:";
echo $temp[user];
echo "<p>";
echo "数据库密码为:";
echo $temp[pass];
echo "<p>";
echo "数据库名称为:";
echo $temp[name];
echo "<p>";

结果:

数据库类型为:mysql
数据库用户名为:root
数据库密码为:123
数据库名称为:test_ini

5.从XML配置文件中读取数据

通过子类Zend_Config_Xml来实现
root element 顶级元素
section-level elements节元素
leaf elements 叶元素

案例:

(1)创建一个XML文件

<?xml version = '1.0'?>
<config>
  <production>
    <webhost>127.0.0.1</webhost>
    <database>
      <type>pdo_mysql</type>
      <host>localhost</host>
      <username>db_user</username>
      <password>db_pass</password>
      <name>test</name>
    </database>
  </production>
  <stag extends="production">
    <database>
      <host>localhost</host>
      <username>db_user</username>
      <password>db_pass</password>
    </database>
  </stag>
</config>

命名为config.xml

(2)建立读取XML文件数据的PHP文件,代码如下。

<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Config_Xml');
$filename = 'config.xml';            //定义配置文件名
$section = "stag";                //定义需要加载的节名
$config = new Zend_Config_Xml($filename,$section);  //为类实例化对象
echo "服务器地址为:";
echo $config->webhost;
echo "<p>";
echo "数据库类型为:";
echo $config->database->type;
echo "<p>";
echo "数据库用户名为:";
echo $config->database->username;
echo "<p>";
echo "数据库密码为:";
echo $config->database->password;
echo "<p>";

结果:

服务器地址为:127.0.0.1
数据库类型为:pdo_mysql
数据库用户名为:db_user
数据库密码为:db_pass

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

PHP 相关文章推荐
phpinfo 系统查看参数函数代码
Jun 05 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
May 02 PHP
PHP重定向的3种方式
Mar 07 PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
Jun 19 PHP
php 解决substr()截取中文字符乱码问题
Jul 18 PHP
thinkphp jquery实现图片上传和预览效果
Jul 22 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
May 02 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
Jan 10 PHP
实例讲解PHP表单验证功能
Feb 15 PHP
PHP实现15位身份证号转18位的方法分析
Oct 16 PHP
Zend Framework过滤器Zend_Filter用法详解
Dec 09 #PHP
Zend Framework实现自定义过滤器的方法
Dec 09 #PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 #PHP
浅谈PHP中try{}catch{}的使用方法
Dec 09 #PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 #PHP
浅谈PHP的数据库接口和技术
Dec 09 #PHP
magento后台无法登录解决办法的两种方法
Dec 09 #PHP
You might like
php+oracle 分页类
2006/10/09 PHP
PHP采集相关教程之一 CURL函数库
2010/02/15 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
2014/02/10 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
js电话号码验证方法
2015/09/28 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
python中OrderedDict的使用方法详解
2017/05/05 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
详解Python中where()函数的用法
2018/03/27 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
django queryset相加和筛选教程
2020/05/18 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
设置器与访问器的定义以及各自特点
2016/01/08 面试题
学校食堂采购员岗位职责
2013/12/05 职场文书
内科护士节演讲稿
2014/09/11 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
2016年中秋节寄语大全
2015/12/07 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis
关于Python中进度条的六个实用技巧分享
2022/04/05 Python