FatalErrorException při config: set.date.timezone

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mancze
Člen | 58
+
0
-

Pomocí configu bych chtěl nastavovat výchozí timezone pro práci s datem. Proto jsem si do něj zavedl záznam „set.date.timezone“. Config načítám pomocí

Environment::loadConfig(APP_DIR . "/config.ini");

Při takvémto nastavení však dostanu FatalErrorException: Object of class Config could not be converted to string. Dochází k tomu ve třídě Nette/Configurator.php (165):

if (function_exists('ini_set')) {
	ini_set($key, $value); // tady $value je instancí Config
} else {
	...
}

Nezdá se mi, že by to bylo záměrné chování. Nebo chybuji někde já? Moje revize frameworku je r230.

Editoval mancze (22. 3. 2009 19:10)

kravčo
Člen | 721
+
0
-

správne by si do konfigu mal napísať:

set.date-timezone = "Europe/Bratislava" ; všimni si spojovník

Je to z príkladu skeleton…

Je tomu tak, kvôli obmedzenej podpore znakov v názve premennej v novom INI parseri, ktorý príde myslím až s PHP 5.3, no Nette je naň už pripravené. V PHP direktívach treba preto namiesto bodky písať spojovník – Nette názov opraví a funkcii ini_set() sa už dostane jej správny názov.

Editoval kravco (22. 3. 2009 20:18)

mancze
Člen | 58
+
0
-

Děkuji moc, pomohlo to ;).

David Grudl
Nette Core | 8228
+
0
-

Upravil jsem chování, bude fungovat i date.timezone = "Europe/Bratislava", viz f31-changelog