A Zend Framework alkalmazásokban a konfigurációs állományokat a konfigurációját három módon célszerű használni:
- Tömbben megadva => Ekkor egy megfelelően kialakított asszociatív tömböt használunk és a Zend_Config() osztályt használjuk
- Fájlban megadva a tömböt. Ekkor egy config.php-ba mentjük le a konfigurációs paramétereket, majd a fájlt beolvasva kapjuk meg a konfig tömböt.
- A harmadik esetben ini fájlokat használunk. Ez a legjobban felhasználó barát, mivel ezt a windowsos világból is ismerik a felhasználók. Ennél pedig nem kell mélyebben elmerülni a konfigurációs állományok mélységében.
- Végül szabványos xml fájlban is megadhatjuk a konfigurációs értékeket.
A fájlból beolvasott konfigurációs tömb
A application/config.php tartalma:
<? return array( 'webhost'=>'localhost', 'appName'=>'My First Zend', 'database'=>array( 'host'=>'localhost', 'dbname'=>'zend', 'username'=>'root', 'password'=>'admin' ) ); ?>
A public/index.php tartalma
<?php error_reporting(E_ALL|E_STRICT); ini_set('display_errors', true); date_default_timezone_set('Europe/London'); $rootDir = dirname(dirname(__FIle__)); set_include_path($rootDir . '/library' . PATH_SEPARATOR . get_include_path()); require_once 'Zend/Controller/Front.php'; require_once 'Zend/Registry.php'; require_once 'Zend/Db/Adapter/Pdo/Mysql.php'; require_once 'Zend/Config.php'; $config = new Zend_Config(require '../application/config.php'); $title = $config->appName; $params = $config->database->toArray(); Zend_Registry::set('title',$title); $arrName = array('Ilmia Fatin','Aqila Farzana', 'Imanda Fahrizal'); Zend_Registry::set('credits',$arrName); $DB = new Zend_Db_Adapter_Pdo_Mysql($params); $DB->setFetchMode(Zend_Db::FETCH_OBJ); Zend_Registry::set('DB',$DB); Zend_Controller_Front::run('../application/controllers'); ?>
Az ini fájlok használata
Az application/config.ini fájl tartalma
; Production site configuration data [app] webhost = www.example.com title = My Zend Framework database.host = localhost database.username = root database.password = admin database.dbname = zend
Az ini fájlok esetén az egy kulcshoz tartozó albejegyzéseket ponttal választjuk el a kulcstól.
A public/index.php tartalma ekkor
<?php error_reporting(E_ALL|E_STRICT); ini_set('display_errors', true); date_default_timezone_set('Europe/London'); $rootDir = dirname(dirname(__FIle__)); set_include_path($rootDir . '/library' . PATH_SEPARATOR . get_include_path()); require_once 'Zend/Controller/Front.php'; require_once 'Zend/Registry.php'; require_once 'Zend/Db/Adapter/Pdo/Mysql.php'; require_once 'Zend/Config/Ini.php'; $config = new Zend_Config_Ini('../application/config.ini','app'); $title = $config->appName; $params = $config->database->toArray(); Zend_Registry::set('title',$title); $arrName = array('Ilmia Fatin','Aqila Farzana', 'Imanda Fahrizal'); Zend_Registry::set('credits',$arrName); $DB = new Zend_Db_Adapter_Pdo_Mysql($params); $DB->setFetchMode(Zend_Db::FETCH_OBJ); Zend_Registry::set('DB',$DB); Zend_Controller_Front::run('../application/controllers'); ?>
A Zend_Config_Ini('ini fájl elérési útja', 'szakasz') módon paraméterezendő. Így lehet egy konfigurációs állományban több konfigurációt is használni.
XML konfiguráció használata
A szükséges application/config.xml fájl tartalma
<?xml version="1.0"?> <configdata> <app> <webhost>localhost</webhost> <database> <host>localhost</host> <username>root</username> <password>admin</password> <dbname>zend</dbname> </database> </app> </configdata>
Az xml fájl feldolgozásának kódrészlete
require_once 'Zend/Config/Xml.php'; $config = new Zend_Config_Xml('../application/config.xml','app');
A feldolgozás csak abban a két sorban tér el, ahol az ini fájl beolvasása és példányosítása van.