RobotLoader::rebuild nezapomíná smazané třídy
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- VasekPurchart
- Člen | 20
Ahoj, nevím zda jde o bug nebo feature, ale když zavolám metodu rebuild na RobotLoaderu, tak třídy, které jsem přidal, ale nebyly indexované se objeví, ale třídy které jsem od minula smazal, tak zůstanou stále v indexu.
- VasekPurchart
- Člen | 20
No je to docela problém – potřebuji s výsledky co vrátí getIndexedClasses vrátí pracovat a očekával bych, že tím, že zavolám rebuild zaručím, že bude vše v konzistentním stavu :(
- Filip Procházka
- Moderator | 4668
Tak si tam přidej Filter iterator :)
$classes = new ArrayIterator($robotLoader->getIndexedClasses());
$iterator = new Nette\Iterators\Filter($classes, callback('class_exists'));
foreach ($iterator as $class) {
echo $class;
}
Je to trochu krkolomné a asi to načte všechny třídy, ale jako dočasný hack by to mělo stačit.