buildQuery($overrideLimits); $db = clone $this->getDbo(); $db->setQuery($query, $limitstart, $limit); $cursor = $db->execute(); $reflectDB = new ReflectionObject($db); $refFetchAssoc = $reflectDB->getMethod('fetchAssoc'); $refFetchAssoc->setAccessible(true); while ($data = $refFetchAssoc->invoke($db, $cursor)) { $item = clone $this; $item->clearState()->reset(true); $item->bind($data); $item->relationManager = clone $this->relationManager; $item->relationManager->rebase($item); yield $item; } } }