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 实例化类的一点摘记
Mar 23 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
Feb 02 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
Jan 30 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
May 07 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
php微信公众平台开发之获取用户基本信息
Aug 17 PHP
php实现登录tplink WR882N获取IP和重启的方法
Jul 20 PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 PHP
Laravel框架实现的使用smtp发送邮件功能示例
Mar 12 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
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
use jscript Create a SQL Server database
2007/06/16 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
2020/01/12 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
python批量下载图片的三种方法
2013/04/22 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
2016/09/21 Python
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
Python flask框架post接口调用示例
2019/07/03 Python
使用Python制作表情包实现换脸功能
2019/07/19 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
Python request使用方法及问题总结
2020/04/26 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
css3实现可拖动的魔方3d效果
2019/05/07 HTML / CSS
踏青活动策划方案
2014/08/19 职场文书
选购到合适的激光打印机
2022/04/21 数码科技