Naučme konfigurátory procházet nastavením!
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- PJK
- Člen | 70
Zdravíčko, mám podnětný návrh:
Při načítání konfiguračních souborů by mělo být možné rovnou se
zanořit na nějakou úroveň.
Nyní se Nette chová takhle:
Konfigurační soubor:
blog.cache.enable = TRUE
… volání getConfig(‚blog‘) vrací zanořené instance Config:
Nette\Config\Config(1) ▼ {
"cache" => Nette\Config\Config(1) ▼ {
"enable" => "1"
}
}
Když chci použít toto nastavení, bylo by příjemné mít možnost volat
Nette\Environment::getConfig('blog.cache.enable');
stejně jako by bylo příjemné
Nette\Environment::getConfig('blog.cache'); // instance Nette\Config\Config
třeba už jenom proto, že syntaxe
$prvni = vratPole()[1];
v PHP vážně nefunguje.
- Filip Procházka
- Moderator | 4668
a tohle jsi zkoušel?
$enable = Nette\Environment::getConfig('blog')->cache->enable;
- PJK
- Člen | 70
Mám rychloprasobastlofix – FUJETO!!! – úprava v Environment:
public static function getConfig($key = NULL, $default = NULL) {
if (func_num_args ()) {
if (\strpos($key, '.')) {
$res = self::$config;
$path = \explode('.', $key);
foreach ($path as $fragment) {
$res = $res[$fragment];
}
return isset($res) ? $res : $default;
} else {
return isset(self::$config[$key]) ? self::$config[$key] : $default;
}
} else {
return self::$config;
}
}
Dál bych to prozatím neřešil, vím že se plánují další adaptéry konfigurátoru, pohřebení Environment atd… Uvidíme potom