class FileCache implementsFileCache

The file cache.

Properties

protectedarray $config File cache configuration.
protectedFilesystem $files The Filesytem instance to use
protectedFilesystemManager $storage File FilesystemManager instance to use

Methods

__construct(array$config =[],Filesystem$files =null,FilesystemManager$storage =null)

Create an instance.

bool
exists(File$file)

Check if a file exists.

mixed
get(File$file,callable$callback)

Perform a callback with the path of a cached file. This takes care of shared locks on the cached file file so it is not corrupted due to concurrent write operations.

mixed
getOnce(File$file,callable$callback)

Like get but deletes the cached file afterwards (if it is not used somewhere else).

resource
getStream(File$file)

Get a stream resource for an file. If the file is cached, the resource points to the cached file instead. This will not cache uncached files. Make sure to close the streams!

mixed
batch(array$files,callable$callback)

Perform a callback with the paths of many cached files. Use this to prevent pruning of the files while they are processed.

mixed
batchOnce(array$files,callable$callback)

Like batch but deletes the cached files afterwards (if they are not used somewhere else).

prune()

Remove cached files that are too old or exceed the maximum cache size.

clear()

Delete all unused cached files.

bool
existsRemote(File$file)

Check for existence of a remte file.

bool
existsDisk(File$file)

Check for existence of a file from a storage disk.

bool
delete(SplFileInfo$file)

Delete a cached file it it is not used.

array
retrieve(File$file)

Cache a remote or cloud storage file if it is not cached and get the path to the cached file. If the file is local, nothing will be done and the path to the local file will be returned.

array
retrieveExistingFile(string$cachedPath,resource$handle)

Get path and handle for a file that exists in the cache.

array
retrieveNewFile(File$file,string$cachedPath,resource$handle)

Get path and handle for a file that does not yet exist in the cache.

string
getRemoteFile(File$file,resource$target)

Cache a remote file and get the path to the cached file.

string
getDiskFile(File$file,resource$target)

Cache an file from a storage disk and get the path to the cached file. Files from local disks are not cached.

string
cacheFromResource(File$file,resource$source,resource$target)

Store the file from the given resource to a cached file.

ensurePathExists()

Creates the cache directory if it doesn't exist yet.

string
getCachedPath(File$file)

Get the path to the cached file file.

resource
getFileStream(string$url,resource|null$context =null)

Get the stream resource for an file.

boolean
isRemote(File$file)

Determine if an file is remote, i.e. served by a public webserver.

Filesystem
getDisk(File$file)

Get the storage disk on which a file is stored.

Details

at line49
__construct(array$config =[],Filesystem$files =null,FilesystemManager$storage =null)

Create an instance.

Parameters

array $config Optional custom configuration.
Filesystem $files
FilesystemManager $storage

at line59
bool exists(File$file)

Check if a file exists.

Parameters

File $file

Return Value

bool Whether the file exists or not.

at line71
mixed get(File$file,callable$callback)

Perform a callback with the path of a cached file. This takes care of shared locks on the cached file file so it is not corrupted due to concurrent write operations.

Parameters

File $file
callable $callback Gets the file object and the path to the cached file file as arguments.

Return Value

mixed Result of the callback.

at line81
mixed getOnce(File$file,callable$callback)

Like get but deletes the cached file afterwards (if it is not used somewhere else).

Parameters

File $file
callable $callback Gets the file object and the path to the cached file file as arguments.

Return Value

mixed Result of the callback.

at line91
resource getStream(File$file)

Get a stream resource for an file. If the file is cached, the resource points to the cached file instead. This will not cache uncached files. Make sure to close the streams!

Parameters

File $file

Return Value

resource

Exceptions

Exception If the storage disk does not exist or the file was not found.

at line123
mixed batch(array$files,callable$callback)

Perform a callback with the paths of many cached files. Use this to prevent pruning of the files while they are processed.

Parameters

array $files
callable $callback Gets the array of file objects and the array of paths to the cached file files (in the same ordering) as arguments.

Return Value

mixed Result of the callback.

at line147
mixed batchOnce(array$files,callable$callback)

Like batch but deletes the cached files afterwards (if they are not used somewhere else).

Parameters

array $files
callable $callback Gets the array of file objects and the array of paths to the cached file files (in the same ordering) as arguments.

Return Value

mixed Result of the callback.

at line181
prune()

Remove cached files that are too old or exceed the maximum cache size.

at line232
clear()

Delete all unused cached files.

at line256
protectedbool existsRemote(File$file)

Check for existence of a remte file.

Parameters

File $file

Return Value

bool

at line290
protectedbool existsDisk(File$file)

Check for existence of a file from a storage disk.

Parameters

File $file

Return Value

bool

at line324
protectedbool delete(SplFileInfo$file)

Delete a cached file it it is not used.

Parameters

SplFileInfo $file

Return Value

bool If the file has been deleted.

at line353
protectedarray retrieve(File$file)

Cache a remote or cloud storage file if it is not cached and get the path to the cached file. If the file is local, nothing will be done and the path to the local file will be returned.

Parameters

File $file File to get the path for

Return Value

array Containing the 'path' to the file and the file 'handle'. Close the handle when finished.

Exceptions

Exception If the file could not be cached.

at line406
protectedarray retrieveExistingFile(string$cachedPath,resource$handle)

Get path and handle for a file that exists in the cache.

Parameters

string $cachedPath
resource $handle

Return Value

array

at line427
protectedarray retrieveNewFile(File$file,string$cachedPath,resource$handle)

Get path and handle for a file that does not yet exist in the cache.

Parameters

File $file
string $cachedPath
resource $handle

Return Value

array

at line465
protectedstring getRemoteFile(File$file,resource$target)

Cache a remote file and get the path to the cached file.

Parameters

File $file Remote file
resource $target Target file resource

Return Value

string

Exceptions

Exception If the file could not be cached.

at line489
protectedstring getDiskFile(File$file,resource$target)

Cache an file from a storage disk and get the path to the cached file. Files from local disks are not cached.

Parameters

File $file Cloud storage file
resource $target Target file resource

Return Value

string

Exceptions

Exception If the file could not be cached.

at line523
protectedstring cacheFromResource(File$file,resource$source,resource$target)

Store the file from the given resource to a cached file.

Parameters

File $file
resource $source
resource $target

Return Value

string Path to the cached file

Exceptions

Exception If the file could not be cached.

at line551
protected ensurePathExists()

Creates the cache directory if it doesn't exist yet.

at line565
protectedstring getCachedPath(File$file)

Get the path to the cached file file.

Parameters

File $file

Return Value

string

at line580
protectedresource getFileStream(string$url,resource|null$context =null)

Get the stream resource for an file.

Parameters

string $url
resource|null $context Stream context

Return Value

resource

at line606
protectedboolean isRemote(File$file)

Determine if an file is remote, i.e. served by a public webserver.

Parameters

File $file

Return Value

boolean

at line618
protectedFilesystem getDisk(File$file)

Get the storage disk on which a file is stored.

Parameters

File $file

Return Value

Filesystem