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++;
}
}