Zend_Config_Ini pozwala programistom przechowywać dane
konfiguracyjne w znanym formacie INI a następnie odczytywać je w aplikacji
używając składni zagnieżdżonych właściwości obiektów. Format INI jest
wyspecjalizowany aby zapewnić możliwość zachowania hierarchi danych
konfiguracyjnych a także możliwość dziedziczenia pomiędzy sekcjami danych
konfiguracyjnych. Hierarchia danych konfiguracyjnych jest uzyskiwana
poprzez oddzielenie kluczy za pomocą znaku kropki (.).
Sekcja może rozszerzać lub dziedziczyć z innej sekcji poprzez dodanie
za nazwą sekcji znaku dwukropka (:) oraz nazwy sekcji,
z której dane mają być dziedziczone.
parse_ini_file
Zend_Config_Ini wykorzystuje funkcję PHP parse_ini_file().
Proszę przejrzyj dokumentację tej funkcji aby znać jej specyficzne zachowania,
które dziedziczy Zend_Config_Ini, takie jak to w jaki sposób
są obsługiwane specjalne wartości takie jak true, false,
yes, no, oraz null.
Separator kluczy
Domyślnie separatorem kluczy jest znak kropki (.). Może
on być jednak zmieniony przez zmianę klucza
'nestSeparator' z tablicy $options podczas
tworzenia obiektu Zend_Config_Ini. Na przykład:
$options['nestSeparator'] = ':';
$config = new Zend_Config_Ini('/path/to/config.ini',
'staging',
$options);
Przykład 120. Użycie Zend_Config_Ini
Ten przykład pokazuje podstawowe użycie klasy Zend_Config_Ini
do ładowania danych konfiguracyjnych z pliku INI. W tym przykładzie
znajdują się dane konfiguracyjne zarówno dla systemu produkcyjnego
jak i dla systemu rozbudowywanego. Z tego względu, że dane
konfiguracyjne systemu rozbudowywanego są bardzo podobne do tych dla
systemu produkcyjnego, sekcja systemu rozbudowywanego dziedziczy po
sekcji systemu produkcyjnego. W tym przypadku decyzja jest dowolna
i mogłoby to być zrobione odwrotnie, z sekcją systemu produkcyjnego
dziedziczącą po sekcji systemu rozbudowywanego, chociaż nie może to
być przykładem dla bardziej złożonych sytuacji. Załóżmy, że poniższe
dane konfiguracyjne znajdują się w pliku /path/to/config.ini:
; Podstawowe dane konfiguracyjne
[production]
webhost = www.example.com
database.adapter = pdo_mysql
database.params.host = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname = dbname
; Konfiguracja aplikacji rozbudowywanej dziedziczy z podstawowej
; konfiguracji, a niektóre wartości są nadpisywane
[staging : production]
database.params.host = dev.example.com
database.params.username = devuser
database.params.password = devsecret
Następnie załóżmy, że programista aplikacji potrzebuje danych konfiguracyjnych aplikacji rozbudowywanej z pliku INI. Prostą sprawą jest załadowanie tych danych określając plik INI oraz sekcję dla aplikacji rozbudowywanej:
$config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
echo $config->database->params->host; // wyświetla "dev.example.com"
echo $config->database->params->dbname; // wyświetla "dbname"
Uwaga
Tabela 39. Parametry konstruktora Zend_Config_Ini
| Parametr | Opis |
|---|---|
$filename |
Nazwa pliku INI do załadowania. |
$section |
Nazwa sekcji wewnątrz pliku ini, która ma być załadowana. Ustawienie wartości tego parametru na null spowoduje załadowanie wszystkich sekcji. Alternatywnie, możesz przekazać tablicę nazw sekcji aby załadować wiele sekcji. |
$options = false |
Tablica opcji. Obsługiwane są poniższe klucze:
|