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:
|