Neos\Flow\ResourceManagement\ResourceRepository::findByCollectionNameIterator PHP Method

findByCollectionNameIterator() public method

Finds all objects by collection name and return an IterableResult
public findByCollectionNameIterator ( string $collectionName ) : Doctrine\ORM\Internal\Hydration\IterableResult
$collectionName string
return Doctrine\ORM\Internal\Hydration\IterableResult
    public function findByCollectionNameIterator($collectionName)
    {
        /** @var QueryBuilder $queryBuilder */
        $queryBuilder = $this->entityManager->createQueryBuilder();
        return $queryBuilder->select('PersistentResource')->from($this->getEntityClassName(), 'PersistentResource')->where('PersistentResource.collectionName = :collectionName')->setParameter(':collectionName', $collectionName)->getQuery()->iterate();
    }

Usage Example

 /**
  * Retrieve all Objects stored in this storage, filtered by the given collection name
  *
  * @param callable $callback Function called after each iteration
  * @param CollectionInterface $collection
  * @return \Generator<Object>
  */
 public function getObjectsByCollection(CollectionInterface $collection, callable $callback = null)
 {
     $iterator = $this->resourceRepository->findByCollectionNameIterator($collection->getName());
     $iteration = 0;
     foreach ($this->resourceRepository->iterate($iterator, $callback) as $resource) {
         /** @var PersistentResource $resource */
         $object = new StorageObject();
         $object->setFilename($resource->getFilename());
         $object->setSha1($resource->getSha1());
         $object->setMd5($resource->getMd5());
         $object->setFileSize($resource->getFileSize());
         $object->setStream(function () use($resource) {
             return $this->getStreamByResource($resource);
         });
         (yield $object);
         if (is_callable($callback)) {
             call_user_func($callback, $iteration, $object);
         }
         $iteration++;
     }
 }