Jak se dostat k datům robot loaderu?
- Vyki
- Člen | 388
Nevíte prosím někdo jak se snadno dostat k cache robot loaderu? Dříve to bylo snadné.
<?php
public function getRLCacheData
{
$cache = Environment::getCache('Nette.RobotLoader');
$data = array();
foreach($cache['data']['list'] as $name => $page){
$data[$name] = $page;
}
}
return $data;
}
?>
Bohužel dneska je cache uložena pod názvem generovaného klíče. Zkoumal jsem jak se k těmto datům dostává presenterLoader, ale neřišel jsem na nic. Nemá Nette někde ten klíč uloženo? Díky za radu. EDIT: Vzhledem k tomu, že $list ve třídě je private, tak jsem nepřišel na nic jiného než:
<?php
$cache = Environment::getCache('Nette.RobotLoader');
$rl = AutoLoader::getLoaders();
$rld = $rl[0];
$key = md5("v2|$rld->ignoreDirs|$rld->acceptFiles|" . implode('|', $rld->scanDirs));
Debug::consoleDump($cache[$key]);
?>
Čistotou to ale zrovna 2× nevoní.
Editoval Vyki (20. 7. 2010 7:49)
- norbe
- Backer | 405
Dříve jsem také využíval cache RobotLoader
, po výše
uvedených změnách jsem si na toto vytvořil novou třídu, která si seznam
generuje sama. Stačí zkopírovat několik metod a je hotovo. Výhodu to má
v tom, že je to trvalé a nemusíš to upravovat při každé změně
RobotLoaderu
(což byl asi i důvod, proč jsou ta data nyní
nedostupná).
- Filip Procházka
- Moderator | 4668
tohle je imho čistší
$classes = \Nette\Environment::getService('Nette\\Loaders\\RobotLoader')->getIndexedClasses();
Editoval HosipLan (14. 9. 2010 13:18)