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

5年以前  |  阅读数:890 次  |  编程语言:PHP 

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例