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 | |
---|---|
|
Separator kluczy | |
---|---|
Domyślnie separatorem kluczy jest znak kropki ( <?php require_once 'Zend/Config/Ini.php'; $config['nestSeparator'] = ':'; $config = new Zend_Config_Ini('/path/to/config.ini', 'staging', $config);
|
Przykład 5.2. 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.type = pdo_mysql database.host = db.example.com database.username = dbuser database.password = secret database.name = dbname ; Konfiguracja aplikacji rozbudowywanej dziedziczy z podstawowej ; konfiguracji, a niektóre wartości są nadpisywane [staging : production] database.host = dev.example.com database.username = devuser database.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:
<?php require_once 'Zend/Config/Ini.php'; $config = new Zend_Config_Ini('/path/to/config.ini', 'staging'); echo $config->database->host; // wyświetla "dev.example.com" echo $config->database->name; // wyświetla "dbname"