PHP Class Neos\Flow\ResourceManagement\ResourceManager

Show file Open project: neos/flow-development-collection Class Usage Examples

Protected Properties

Property Type Description
$collections array
$environment Neos\Flow\Utility\Environment
$initialized boolean
$objectManager Neos\Flow\ObjectManagement\ObjectManagerInterface
$persistenceManager Neos\Flow\Persistence\PersistenceManagerInterface
$resourceRepository ResourceRepository
$settings array
$storages array
$systemLogger Neos\Flow\Log\SystemLoggerInterface
$targets array

Public Methods

Method Description
createResourceFromContent ( string $content, string $filename ) : PersistentResource Creates a resource from the given binary content as a persistent resource.
deleteResource ( PersistentResource $resource, boolean $unpublishResource = true ) : boolean Deletes the given PersistentResource from the ResourceRepository and, if the storage data is no longer used in another PersistentResource object, also deletes the data from the storage.
getCollection ( string $collectionName ) : Neos\Flow\ResourceManagement\CollectionInterface Returns a Collection instance by the given name
getCollections ( ) : array Returns an array of currently known Collection instances
getCollectionsByStorage ( Neos\Flow\ResourceManagement\Storage\StorageInterface $storage ) : array Returns an array of Collection instances which use the given storage
getImportedResources ( ) : SplObjectStorage Returns an object storage with all resource objects which have been imported by the ResourceManager during this script call. Each resource comes with an array of additional information about its import.
getPackageAndPathByPublicPath ( string $path ) : array Return the package key and the relative path and filename from the given resource path
getPublicPackageResourceUri ( string $packageKey, string $relativePathAndFilename ) : string Returns the public URI for a static resource provided by the specified package and in the given path below the package's resources directory.
getPublicPackageResourceUriByPath ( string $path ) : string Returns the public URI for a static resource provided by the public package
getPublicPersistentResourceUri ( PersistentResource $resource ) : string | boolean Returns the web accessible URI for the given resource object
getPublicPersistentResourceUriByHash ( string $resourceHash, string $collectionName = self::DEFAULT_PERSISTENT_COLLECTION_NAME ) : string Returns the web accessible URI for the resource object specified by the given SHA1 hash.
getResourceBySha1 ( string $sha1Hash ) : PersistentResource | null Returns the resource object identified by the given SHA1 hash over the content, or NULL if no such PersistentResource object is known yet.
getStorage ( string $storageName ) : Neos\Flow\ResourceManagement\Storage\StorageInterface Returns a Storage instance by the given name
getStreamByResource ( PersistentResource $resource ) : resource | boolean Returns a stream handle of the given persistent resource which allows for opening / copying the resource's data. Note that this stream handle may only be used read-only.
importResource ( string | resource $source, string $collectionName = ResourceManager::DEFAULT_PERSISTENT_COLLECTION_NAME, string $forcedPersistenceObjectIdentifier = null ) : PersistentResource Imports a resource (file) from the given location as a persistent resource.
importResourceFromContent ( string $content, string $filename, string $collectionName = ResourceManager::DEFAULT_PERSISTENT_COLLECTION_NAME, string $forcedPersistenceObjectIdentifier = null ) : PersistentResource Imports the given content passed as a string as a new persistent resource.
importUploadedResource ( array $uploadInfo, string $collectionName = self::DEFAULT_PERSISTENT_COLLECTION_NAME ) : PersistentResource Imports a resource (file) from the given upload info array as a persistent resource.
injectSettings ( array $settings ) : void Injects the settings of this package
shutdownObject ( ) : void Checks if recently imported resources really have been persisted - and if not, removes its data from the respective storage.

Protected Methods

Method Description
initialize ( ) : void Initializes the ResourceManager by parsing the related configuration and registering the resource stream wrapper.
initializeCollections ( ) : void Initializes the Collection objects according to the current settings
initializeStorages ( ) : void Initializes the Storage objects according to the current settings
initializeTargets ( ) : void Initializes the Target objects according to the current settings
prepareUploadedFileForImport ( array $uploadInfo ) : array Prepare an uploaded file to be imported as resource object. Will check the validity of the file, move it outside of upload folder if open_basedir is enabled and check the filename.

Method Details

createResourceFromContent() public method

Creates a resource from the given binary content as a persistent resource.
See also: importResourceFromContent()
Deprecation: use importResourceFromContent() instead
public createResourceFromContent ( string $content, string $filename ) : PersistentResource
$content string The binary content to import
$filename string The filename to use for the newly generated resource
return PersistentResource A resource object representing the created resource or FALSE if an error occurred.

deleteResource() public method

This method will also remove the PersistentResource object from the (internal) ResourceRepository.
public deleteResource ( PersistentResource $resource, boolean $unpublishResource = true ) : boolean
$resource PersistentResource The resource to delete
$unpublishResource boolean If the resource should be unpublished before deleting it from the storage
return boolean true if the resource was deleted, otherwise FALSE

getCollection() public method

Returns a Collection instance by the given name
public getCollection ( string $collectionName ) : Neos\Flow\ResourceManagement\CollectionInterface
$collectionName string Name of the collection as defined in the settings
return Neos\Flow\ResourceManagement\CollectionInterface or NULL

getCollections() public method

Returns an array of currently known Collection instances
public getCollections ( ) : array
return array

getCollectionsByStorage() public method

Returns an array of Collection instances which use the given storage
public getCollectionsByStorage ( Neos\Flow\ResourceManagement\Storage\StorageInterface $storage ) : array
$storage Neos\Flow\ResourceManagement\Storage\StorageInterface
return array

getImportedResources() public method

Example for a returned object storage: $resource1 => array('originalFilename' => 'Foo.txt'), $resource2 => array('originalFilename' => 'Bar.txt'), ...
public getImportedResources ( ) : SplObjectStorage
return SplObjectStorage

getPackageAndPathByPublicPath() public method

Return the package key and the relative path and filename from the given resource path
public getPackageAndPathByPublicPath ( string $path ) : array
$path string The ressource path, like resource://Your.Package/Public/Image/Dummy.png
return array The array contains two value, first the packageKey followed by the relativePathAndFilename

getPublicPackageResourceUri() public method

Returns the public URI for a static resource provided by the specified package and in the given path below the package's resources directory.
public getPublicPackageResourceUri ( string $packageKey, string $relativePathAndFilename ) : string
$packageKey string Package key
$relativePathAndFilename string A relative path below the "Resources" directory of the package
return string

getPublicPackageResourceUriByPath() public method

Returns the public URI for a static resource provided by the public package
public getPublicPackageResourceUriByPath ( string $path ) : string
$path string The ressource path, like resource://Your.Package/Public/Image/Dummy.png
return string

getPublicPersistentResourceUri() public method

Returns the web accessible URI for the given resource object
public getPublicPersistentResourceUri ( PersistentResource $resource ) : string | boolean
$resource PersistentResource The resource object
return string | boolean A URI as a string or FALSE if the collection of the resource is not found

getPublicPersistentResourceUriByHash() public method

Returns the web accessible URI for the resource object specified by the given SHA1 hash.
public getPublicPersistentResourceUriByHash ( string $resourceHash, string $collectionName = self::DEFAULT_PERSISTENT_COLLECTION_NAME ) : string
$resourceHash string The SHA1 hash identifying the resource content
$collectionName string Name of the collection the resource is part of
return string A URI as a string

getResourceBySha1() public method

Returns the resource object identified by the given SHA1 hash over the content, or NULL if no such PersistentResource object is known yet.
public getResourceBySha1 ( string $sha1Hash ) : PersistentResource | null
$sha1Hash string The SHA1 identifying the data the PersistentResource stands for
return PersistentResource | null

getStorage() public method

Returns a Storage instance by the given name
public getStorage ( string $storageName ) : Neos\Flow\ResourceManagement\Storage\StorageInterface
$storageName string Name of the storage as defined in the settings
return Neos\Flow\ResourceManagement\Storage\StorageInterface or NULL

getStreamByResource() public method

Returns a stream handle of the given persistent resource which allows for opening / copying the resource's data. Note that this stream handle may only be used read-only.
public getStreamByResource ( PersistentResource $resource ) : resource | boolean
$resource PersistentResource The resource to retrieve the stream for
return resource | boolean The resource stream or FALSE if the stream could not be obtained

importResource() public method

On a successful import this method returns a PersistentResource object representing the newly imported persistent resource and automatically publishes it to the configured publication target.
public importResource ( string | resource $source, string $collectionName = ResourceManager::DEFAULT_PERSISTENT_COLLECTION_NAME, string $forcedPersistenceObjectIdentifier = null ) : PersistentResource
$source string | resource A URI (can therefore also be a path and filename) or a PHP resource stream(!) pointing to the PersistentResource to import
$collectionName string Name of the collection this new resource should be added to. By default the standard collection for persistent resources is used.
$forcedPersistenceObjectIdentifier string INTERNAL: Force the object identifier for this resource to the given UUID
return PersistentResource A resource object representing the imported resource

importResourceFromContent() public method

The given content typically is binary data or a text format. On a successful import this method returns a PersistentResource object representing the imported content and automatically publishes it to the configured publication target. The specified filename will be used when presenting the resource to a user. Its file extension is important because the resource management will derive the IANA Media Type from it.
public importResourceFromContent ( string $content, string $filename, string $collectionName = ResourceManager::DEFAULT_PERSISTENT_COLLECTION_NAME, string $forcedPersistenceObjectIdentifier = null ) : PersistentResource
$content string The binary content to import
$filename string The filename to use for the newly generated resource
$collectionName string Name of the collection this new resource should be added to. By default the standard collection for persistent resources is used.
$forcedPersistenceObjectIdentifier string INTERNAL: Force the object identifier for this resource to the given UUID
return PersistentResource A resource object representing the imported resource

importUploadedResource() public method

On a successful import this method returns a PersistentResource object representing the newly imported persistent resource.
public importUploadedResource ( array $uploadInfo, string $collectionName = self::DEFAULT_PERSISTENT_COLLECTION_NAME ) : PersistentResource
$uploadInfo array An array detailing the resource to import (expected keys: name, tmp_name)
$collectionName string Name of the collection this uploaded resource should be added to
return PersistentResource A resource object representing the imported resource

initialize() protected method

Initializes the ResourceManager by parsing the related configuration and registering the resource stream wrapper.
protected initialize ( ) : void
return void

initializeCollections() protected method

Initializes the Collection objects according to the current settings
protected initializeCollections ( ) : void
return void

initializeStorages() protected method

Initializes the Storage objects according to the current settings
protected initializeStorages ( ) : void
return void

initializeTargets() protected method

Initializes the Target objects according to the current settings
protected initializeTargets ( ) : void
return void

injectSettings() public method

Injects the settings of this package
public injectSettings ( array $settings ) : void
$settings array
return void

prepareUploadedFileForImport() protected method

Prepare an uploaded file to be imported as resource object. Will check the validity of the file, move it outside of upload folder if open_basedir is enabled and check the filename.
protected prepareUploadedFileForImport ( array $uploadInfo ) : array
$uploadInfo array
return array Array of string with the two keys "filepath" (the path to get the filecontent from) and "filename" the filename of the originally uploaded file.

shutdownObject() public method

Checks if recently imported resources really have been persisted - and if not, removes its data from the respective storage.
public shutdownObject ( ) : void
return void

Property Details

$collections protected property

protected array $collections
return array

$environment protected property

protected Environment,Neos\Flow\Utility $environment
return Neos\Flow\Utility\Environment

$initialized protected property

protected bool $initialized
return boolean

$objectManager protected property

protected ObjectManagerInterface,Neos\Flow\ObjectManagement $objectManager
return Neos\Flow\ObjectManagement\ObjectManagerInterface

$persistenceManager protected property

protected PersistenceManagerInterface,Neos\Flow\Persistence $persistenceManager
return Neos\Flow\Persistence\PersistenceManagerInterface

$resourceRepository protected property

protected ResourceRepository,Neos\Flow\ResourceManagement $resourceRepository
return ResourceRepository

$settings protected property

protected array $settings
return array

$storages protected property

protected array $storages
return array

$systemLogger protected property

protected SystemLoggerInterface,Neos\Flow\Log $systemLogger
return Neos\Flow\Log\SystemLoggerInterface

$targets protected property

protected array $targets
return array