Neos\Flow\ResourceManagement\Target\FileSystemTarget::publishCollection PHP Method

publishCollection() public method

Publishes the whole collection to this target
public publishCollection ( Neos\Flow\ResourceManagement\CollectionInterface $collection, callable $callback = null ) : void
$collection Neos\Flow\ResourceManagement\CollectionInterface The collection to publish
$callback callable Function called after each resource publishing
return void
    public function publishCollection(CollectionInterface $collection, callable $callback = null)
    {
        foreach ($collection->getObjects($callback) as $object) {
            /** @var StorageObject $object */
            $sourceStream = $object->getStream();
            if ($sourceStream === false) {
                $this->handleMissingData($object, $collection);
                continue;
            }
            $this->publishFile($sourceStream, $this->getRelativePublicationPathAndFilename($object));
            fclose($sourceStream);
        }
    }

Usage Example

 /**
  * Publishes the whole collection to this target
  *
  * @param CollectionInterface $collection The collection to publish
  * @param callable $callback Function called after each resource publishing
  * @return void
  */
 public function publishCollection(CollectionInterface $collection, callable $callback = null)
 {
     $storage = $collection->getStorage();
     if ($storage instanceof PackageStorage) {
         foreach ($storage->getPublicResourcePaths() as $packageKey => $path) {
             $this->publishDirectory($path, $packageKey);
         }
     } else {
         parent::publishCollection($collection, $callback);
     }
 }