- public function getIterator () {
- // Instance + return it
- return ObjectFactory::createObjectByConfiguredName('registry_iterator_class', array($this));
+ public function getIterator (array $onlyRegistries = []) {
+ // Is it set?
+ if (is_null($this->getIteratorInstance())) {
+ // Then instance it
+ $iteratorInstance = ObjectFactory::createObjectByConfiguredName('registry_iterator_class', [$this]);
+
+ // ... and set it here
+ $this->setIteratorInstance($iteratorInstance);
+ } else {
+ // Use set iterator
+ $iteratorInstance = $this->getIteratorInstance();
+ }
+
+ // Init iterator instance
+ $iteratorInstance->initIterator($onlyRegistries);
+
+ // Return it
+ return $iteratorInstance;