Nacteni hodnoty: storagePaths.module.submodule z config.ini

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

Zdravim,

premyslim, jak hezky nacist zaznam:

storagePaths.module.submodule = bla bla

z config.ini. Umim to pouze takto:

$rec = "storagePaths.module.submodule";
$exp = explode(".", $rec);
$config = Environment::getConfig($exp[0]);
unset($exp[0]);

foreach ($exp as $value) {
    $config = $config[$value];
}

	$myValue = $config;

a to vypada dosti smutne :-)

Diky za pomoc!

Editoval MartyIX (21. 11. 2010 15:07)

Mikulas Dite
Člen | 756
+
0
-
Environment::getConfig('storagePaths')->module->submodule;

nebo

Environment::getConfig()->storagePaths->module->submodule;
MartyIX
Člen | 217
+
0
-

O tomto vim, ale problem je, ze promenna $rec je variabilni :) Eval pouzivat nechci.

redhead
Člen | 1313
+
0
-

A co

Environment::getConfig($rec0)->$rec1->$rec2;
MartyIX
Člen | 217
+
0
-

@redhead: Jo, to by pouzit slo v mem pripade :), netusil jsem, ze neco takoveho funguje. Co s tim, kdyz nebudu vedet dopredu hloubku zaznamu v ini?

redhead
Člen | 1313
+
0
-

Co nějaký cyklus, který každou podsekci dá do jedné proměnné a na ní se bude volat další podsekce, zase se uloží do stejné proměnné a znova atd.. Nejspíš to budou 2 vnořené cykly (pokud těch top-level sekcí máš víc)

redhead
Člen | 1313
+
0
-

Btw, lze použít i indexy:

$c = Environment::getConfig($rec0);
$xyz = $c[$rec1][$rec2];
MartyIX
Člen | 217
+
0
-

@redhead: Nu, to se pomalu dostavame k tomu memu puvodnimu resenimu (i kdyz zkraslenemu). Vychazel jsem z toho, ze Nette na to ma nejakou funkci nebo trik, ktery by sel pouzit. Ono asi takoveto handlovani se zaznamy v config.ini je asi stejne prasarna, takze je mozna dobre, ze to v Nette neni :)

Diky!