この記事の例では、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 によって実装
ルート要素トップ要素
セクションレベル要素セクション要素
リーフ要素リーフ要素
Case:
(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