class FileSystemStorage implements StorageInterface (View source)

A resource storage based on the (local) file system

Properties

protected string $name

Name which identifies this resource storage

protected string $path

The path (in a filesystem) where resources are stored

protected Environment $environment
protected ResourceManager $resourceManager
protected ResourceRepository $resourceRepository

Methods

__construct(string $name, array $options = [])

Constructor

void
initializeObject()

Initializes this resource storage

string
getName()

Returns the instance name of this storage

resource|bool
getStreamByResource(PersistentResource $resource)

Returns a stream handle which can be used internally to open / copy the given resource stored in this storage.

resource|bool
getStreamByResourcePath(string $relativePath)

Returns a stream handle which can be used internally to open / copy the given resource stored in this storage.

StorageObject>
getObjects(callable $callback = null)

Retrieve all Objects stored in this storage.

StorageObject>
getObjectsByCollection(CollectionInterface $collection, callable $callback = null)

Retrieve all Objects stored in this storage, filtered by the given collection name

string
getStoragePathAndFilenameByHash(string $sha1Hash)

Determines and returns the absolute path and filename for a storage file identified by the given SHA1 hash.

Details

__construct(string $name, array $options = [])

Constructor

Parameters

string $name

Name of this storage instance, according to the resource settings

array $options

Options for this storage

Exceptions

Exception

void initializeObject()

Initializes this resource storage

Return Value

void

Exceptions

Exception

string getName()

Returns the instance name of this storage

Return Value

string

resource|bool getStreamByResource(PersistentResource $resource)

Returns a stream handle which can be used internally to open / copy the given resource stored in this storage.

Parameters

PersistentResource $resource

The resource stored in this storage

Return Value

resource|bool

The resource stream or false if the stream could not be obtained

resource|bool getStreamByResourcePath(string $relativePath)

Returns a stream handle which can be used internally to open / copy the given resource stored in this storage.

Parameters

string $relativePath

A path relative to the storage root, for example "MyFirstDirectory/SecondDirectory/Foo.css"

Return Value

resource|bool

A URI (for example the full path and filename) leading to the resource file or false if it does not exist

StorageObject> getObjects(callable $callback = null)

Retrieve all Objects stored in this storage.

Parameters

callable $callback

Function called after each iteration

Return Value

StorageObject>

StorageObject> getObjectsByCollection(CollectionInterface $collection, callable $callback = null)

Retrieve all Objects stored in this storage, filtered by the given collection name

Parameters

CollectionInterface $collection
callable $callback

Function called after each iteration

Return Value

StorageObject>

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.

Parameters

string $sha1Hash

The SHA1 hash identifying the stored resource

Return Value

string

The path and filename, for example "/var/www/mysite.com/Data/Persistent/c/8/2/8/c828d0f88ce197be1aff7cc2e5e86b1244241ac6"