[2009-03-27] Rozšíření syntaxe INI souborů

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Grudl
Nette Core | 8218
+
0
-

Syntaxe konfiguračních INI souborů byla rozšířena. Jednak je možné v názvech sekcí používat tečku a vytvářet tak podsekce:

; dříve
[production]
database.params.host     = db.example.com
database.params.username = dbuser
database.params.password = secret

; nyní
[production.database.params]
host     = db.example.com
username = dbuser
password = secret

Oba zápisy jsou ekvivalentní. Toto velkým způsobem přispívá k čitelnosti INI souborů, mimojiné i proto, že lze použít více sekcí (resp. podsekcí). Dokonce je možné podsekce dědit:

[production.test < production.database]
host     = localhost

V rámci sekce lze vypnout dělení klíčů pomocí tečky. Tečky tak budou zachovány jako součást klíče. Vypnutí se provede vykřičníkem za názvem sekce:

[common.set!]
date.timezone = "Europe/Prague"
iconv.internal_encoding = UTF-8
mbstring.internal_encoding = UTF-8

Jak už naznačuje příklad, dá se toho využít právě pro zápis ini_set direktiv, které v sobě tečky často obsahují.

Také je možné vytvářet indexovaná pole (tj. neasociativní):

[production]
items[] = 10
items[] = 20
items[] = 30
pmg
Člen | 372
+
0
-

Pěkné.