WritableFileSystemStorage
class WritableFileSystemStorage extends FileSystemStorage implements WritableStorageInterface (View source)
A resource storage based on the (local) file system
Properties
protected string | $name | Name which identifies this resource storage |
from FileSystemStorage |
protected string | $path | The path (in a filesystem) where resources are stored |
from FileSystemStorage |
protected Environment | $environment | from FileSystemStorage | |
protected ResourceManager | $resourceManager | from FileSystemStorage | |
protected ResourceRepository | $resourceRepository | from FileSystemStorage |
Methods
Initializes this resource storage
Returns a stream handle which can be used internally to open / copy the given resource stored in this storage.
Returns a stream handle which can be used internally to open / copy the given resource stored in this storage.
Retrieve all Objects stored in this storage, filtered by the given collection name
Determines and returns the absolute path and filename for a storage file identified by the given SHA1 hash.
Imports a resource (file) from the given URI or PHP resource stream into this storage.
Imports a resource from the given string content into this storage.
Deletes the storage data related to the given PersistentResource object
Imports the given temporary file into the storage and creates the new resource object.
Move a temporary file to the final destination, creating missing path segments on the way.
Fixes the permissions as needed for Flow to run fine in web and cli context.
Details
__construct(string $name, array $options = [])
Constructor
void
initializeObject()
Initializes this resource storage
string
getName()
Returns the instance name of this storage
resource|false
getStreamByResource(PersistentResource $resource)
Returns a stream handle which can be used internally to open / copy the given resource stored in this storage.
resource|false
getStreamByResourcePath(string $relativePath)
Returns a stream handle which can be used internally to open / copy the given resource stored in this storage.
StorageObject>
getObjects()
Retrieve all Objects stored in this storage.
StorageObject>
getObjectsByCollection(CollectionInterface $collection)
Retrieve all Objects stored in this storage, filtered by the given collection name
protected string
getStoragePathAndFilenameByHash(string $sha1Hash)
Determines and returns the absolute path and filename for a storage file identified by the given SHA1 hash.
This function assures a nested directory structure in order to avoid thousands of files in a single directory which may result in performance problems in older file systems such as ext2, ext3 or NTFS.
PersistentResource
importResource(string|resource $source, string $collectionName)
Imports a resource (file) from the given URI or PHP resource stream into this storage.
On a successful import this method returns a PersistentResource object representing the newly imported persistent resource.
PersistentResource
importResourceFromContent(string $content, string $collectionName)
Imports a resource from the given string content into this storage.
On a successful import this method returns a PersistentResource object representing the newly imported persistent resource.
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.
bool
deleteResource(PersistentResource $resource)
Deletes the storage data related to the given PersistentResource object
protected PersistentResource
importTemporaryFile(string $temporaryPathAndFileName, string $collectionName)
Imports the given temporary file into the storage and creates the new resource object.
Note: the temporary file is (re-)moved by this method.
protected void
moveTemporaryFileToFinalDestination(string $temporaryFile, string $finalTargetPathAndFilename)
Move a temporary file to the final destination, creating missing path segments on the way.
protected void
fixFilePermissions(string $pathAndFilename)
Fixes the permissions as needed for Flow to run fine in web and cli context.