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 | 408
 
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)