Klasa Zend_Config została stworzona aby uprościć użycie
danych konfiguracyjnych w aplikacjach. Dostarcza ona interfejs bazujący
na właściwościach obiektów służący do odczytywania danych
konfiguracyjnych wewnątrz kodu aplikacji. Dane konfiguracyjne mogą
pochodzić z różnego rodzaju źródeł, w których dane konfiguracyjne są
przechowywane hierarchiczne. Obecnie Zend_Config dostarcza
klasy obsługujące dane konfiguracyjne przechowywane w plikach tekstowych:
Zend_Config_Ini, oraz
Zend_Config_Xml.
Przykład 118. Użycie Zend_Config
Normalnie jest tak, że użytkownicy użyliby jednej z klas adaptera,
takiej jak Zend_Config_Ini
czy Zend_Config_Xml,
ale dane konfiguracyjne mogą być też dostępne w tablicy PHP. Można w prosty
sposób przekazać tablicę do konstruktora Zend_Config w celu
uzyskania obiektu zawierającego dane konfiguracyjne:
// Tablica danych konfiguracyjnych
$configArray = array(
'webhost' => 'www.example.com',
'database' => array(
'adapter' => 'pdo_mysql',
'params' => array(
'host' => 'db.example.com',
'username' => 'dbuser',
'password' => 'secret',
'dbname' => 'mydatabase'
)
)
);
// Tworzy obiekt konfiguracji na podstawie danych konfiguracyjnych
$config = new Zend_Config($configArray);
// Wyświetlenie wpisu z konfiguracji (wynikiem jest 'www.example.com')
echo $config->webhost;
// Użycie danych konfiguracyjnych w celu połączenia się z bazą danych
$db = Zend_Db::factory($config->database->adapter,
$config->database->params->toArray());
// Alternartywne użycie: przekazanie obiektu Zend_Config.
// Metoda kklasy Zend_Db wie jak zinterpretować dane.
$db = Zend_Db::factory($config->database);
Jak zostało pokazane w powyższym przykładzie, klasa Zend_Config
zapewnia składnię zagnieżdżonych właściwości obiektów w celu uzyskania
dostępu do danych konfiguracyjnych przekazanych do konstruktora.
Oprócz zorientowanego obiektowo dostępu do wartości klasa
Zend_Config posiada także metodę get()
umożliwiającą zwrócenie podanej domyślnej wartości jeśli element nie
istnieje. Na przykład:
$host = $config->database->get('host', 'localhost');
Przykład 119. Użycie Zend_Config z plikiem konfiguracyjnym PHP
Często wskazane może być użycie do konfiguracji zwykłego pliku PHP. Poniższy kod pokazuje w jak łatwy sposób można to zrobić:
return array(
'webhost' => 'www.example.com',
'database' => array(
'adapter' => 'pdo_mysql',
'params' => array(
'host' => 'db.example.com',
'username' => 'dbuser',
'password' => 'secret',
'dbname' => 'mydatabase'
)
)
);
// Załadowanie konfiguracji
$config = new Zend_Config(require 'config.php');
// Wyświetlenie danych konfiguracyjnych (powoduje wyświetlenie 'www.example.com')
echo $config->webhost;