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 相关文章推荐
PHP常用代码
Nov 23 PHP
php xml-rpc远程调用
Dec 19 PHP
MySQL 日期时间函数常用总结
Jun 12 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
Jun 10 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 PHP
PHP迭代器和迭代的实现与使用方法分析
Apr 19 PHP
PHP _construct()函数讲解
Feb 03 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 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之短标签开启设置
2013/06/17 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
PHP7内核之Reference详解
2019/03/14 PHP
JavaScript 中的replace方法说明
2007/04/13 Javascript
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
JS获取表格视图所选行号的ids过程解析
2020/02/21 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
[51:11]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS DT
2014/05/22 DOTA
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
Python正则表达式常用函数总结
2017/06/24 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
使用python对excle和json互相转换的示例
2018/10/23 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
python super函数使用方法详解
2020/02/14 Python
python判断元素是否存在的实例方法
2020/09/24 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
Ann Taylor官方网站:美国最大的女性产品制造商之一
2016/09/14 全球购物
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
教学实验楼管理制度
2014/02/01 职场文书
2014年个人售房协议书
2014/10/30 职场文书
公务员年终个人总结
2015/02/12 职场文书
食品质检员岗位职责
2015/04/08 职场文书
故意伤害辩护词
2015/05/21 职场文书
三八节活动简报
2015/07/20 职场文书