Zend_Config_Ini

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:
  • allowModifications: Ustaw na true aby umożliwić późniejszą modyfikację załadowanego pliku. Domyśłnie false

  • nestSeparator: Ustaw znak jaki ma być użyty do oddzielania przestrzeni nazw. Domyślnie "."