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 相关文章推荐
文章推荐系统(二)
Oct 09 PHP
利用php来自动调用不同服务器上的flash
Oct 09 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
Apr 22 PHP
使用Apache的htaccess防止图片被盗链的解决方法
Apr 27 PHP
CI(CodeIgniter)框架介绍
Jun 09 PHP
PHP动态输出JavaScript代码实例
Feb 12 PHP
php截取指定2个字符之间字符串的方法
Apr 15 PHP
PHP内核探索之变量
Dec 22 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
分析php://output和php://stdout的区别
May 06 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生成文件
2007/01/15 PHP
有关php运算符的知识大全
2011/11/03 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
vue Element左侧无限级菜单实现
2020/06/10 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
详解Python中的相对导入和绝对导入
2017/01/06 Python
Python中函数及默认参数的定义与调用操作实例分析
2017/07/25 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
Python中super函数用法实例分析
2019/03/18 Python
python集合常见运算案例解析
2019/10/17 Python
如何定义TensorFlow输入节点
2020/01/23 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
2020/07/09 Python
如何用python 操作zookeeper
2020/12/28 Python
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
自动化专业毕业生自荐信
2013/11/01 职场文书
测绘工程个人的自我评价
2013/11/23 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
商业用房租赁协议书
2014/10/13 职场文书
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android