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
+
0
-

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.

Filip Procházka
Moderator | 4668
+
0
-

To je schválně. Vadí ti to?

VasekPurchart
Člen | 20
+
0
-

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
+
0
-

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.