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
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
thinkphp数据查询和遍历数组实例
Nov 28 PHP
PHP中让curl支持sock5的代码实例
Jan 21 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
php取出数组单个值的方法
Mar 12 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
Apr 20 PHP
php + ajax 实现的写入数据库操作简单示例
May 16 PHP
Laravel中获取IP的真实地理位置
Apr 01 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
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
PHP获取当前相对于域名目录的方法
2015/06/26 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
Python XML RPC服务器端和客户端实例
2014/11/22 Python
python对指定目录下文件进行批量重命名的方法
2015/04/18 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
五种Python转义表示法
2020/11/27 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
自荐信模版
2013/10/24 职场文书
有针对性的求职自荐信
2013/11/14 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
申请吧主发表的感言
2015/08/03 职场文书
《检阅》教学反思
2016/02/22 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS
Java 异步任务计算FutureTask
2022/04/28 Java/Android
Golang并发工具Singleflight
2022/05/06 Golang