Zend_Config_Array
umożliwia programistom przechowywanie
danych konfiguracyjnych w wielowymiarowych tablicach PHP i uzyskanie dostępu
do nich jak do właściwości obiektu za pomocą Zend_Config
.
Przykład 3.2. Dane konfiguracyjne przechowywane jako tablice PHP
Ten przykład pokazuje proste użycie klasy Zend_Config_Array
do ładowania danych konfiguracyjnych z tablic PHP. Wpierw tworzymy
tablice PHP zawierające dane konfiguracyjne:
<?php // Podstawowe dane konfiguracyjne $config['production'] = array( 'webhost' => 'www.example.com', 'database' => array( 'type' => 'pdo_mysql', 'host' => 'db.example.com', 'username' => 'dbuser', 'password' => 'secret', 'name' => 'dbname' ) ); // Konfiguracja aplikacji rozbudowywanej dziedziczy z podstawowej // konfiguracji, a niektóre wartości są nadpisywane $config['staging'] = $config['production']; $config['staging']['webhost'] = 'dev.example.com'; $config['staging']['database']['host'] = 'dev.example.com'; $config['staging']['database']['username'] = 'devuser'; $config['staging']['database']['password'] = 'devsecret'; ?>
Notatka | |
---|---|
Tablica zawierająca dane konfiguracyjne znajdująca się w załadowanym
skrypcie powinna nazywać się $config .
|
Dziedzieczenie w powyższym przykładzie jest obsługiwane przez
przypisanie wartości sekcji production
do sekcji
staging
. Teraz prostą sprawą jest załadowanie danych
konfiguracyjnych za pomocą Zend_Config_Array
:
<?php require_once 'Zend/Config.php'; require_once 'Zend/Config/Array.php'; $config = new Zend_Config(Zend_Config_Array::load('/path/to/config.php', 'staging')); echo $config->database->host; // wyświetla "dev.example.com" ?>
Ten sposób jest godny uwagi, ponieważ dane konfiguracyjne są bezpośrednio
przechowywane w tablicach PHP, a każda wartość danych konfiguracyjnych
ma ten sam typ jak w tablicy $config
z pliku konfiguracyjnego.
<?php $config['staging']['debug'] = 'false'; // wartośc jest łańcuchem znaków $config['staging']['console'] = false; // wartość jest zmienną logiczną $config['staging']['timeout'] = 30; // wartość jest liczbą całkowitą ?>