FileBackend extends SimpleFileBackend implements FreezableBackendInterface, TaggableBackendInterface
A caching backend which stores cache entries in files
Table of Contents
Interfaces
- FreezableBackendInterface
- A contract for a cache backend which can be frozen.
- TaggableBackendInterface
- A contract for a cache backend which supports tagging.
Constants
- DATASIZE_DIGITS = 10
- DATETIME_EXPIRYTIME_UNLIMITED = '9999-12-31T23:59:59+0000'
- EXPIRYTIME_FORMAT = 'YmdHis'
- EXPIRYTIME_LENGTH = 14
- SEPARATOR = '^'
- UNLIMITED_LIFETIME = 0
Properties
- $cache : FrontendInterface
- Reference to the cache which uses this backend
- $cacheDirectory : string
- Directory where the files are stored
- $cacheEntryFileExtension : string
- A file extension to use for each cache entry.
- $cacheEntryIdentifiers : array<string|int, mixed>
- $cacheIdentifier : string
- $context : string
- The current application context
- $defaultLifetime : int
- Default lifetime of a cache entry in seconds
- $frozen : bool
- $temporaryCacheDirectory : string
- Temporary path to cache directory before setCache() was called. It is set by setCacheDirectory() and used in setCache() method which calls the directory creation if needed. The variable is not used afterwards, the final cache directory path is stored in $this->cacheDirectory then.
Methods
- __construct() : mixed
- Constructs this backend
- collectGarbage() : mixed
- Does garbage collection
- findIdentifiersByTag() : array<string|int, mixed>
- Finds and returns all cache entry identifiers which are tagged by the specified tag.
- flush() : mixed
- Removes all cache entries of this cache and sets the frozen flag to FALSE.
- flushByTag() : mixed
- Removes all cache entries of this cache which are tagged by the specified tag.
- flushByTags() : mixed
- Backwards compatibility safeguard since re-introducing flushByTags as API.
- freeze() : mixed
- Freezes this cache backend.
- get() : mixed
- Loads data from a cache file.
- getCacheDirectory() : string
- Returns the directory where the cache files are stored
- has() : bool
- Checks if a cache entry with the specified identifier exists.
- isFrozen() : bool
- Tells if this backend is frozen.
- remove() : bool
- Removes all cache entries matching the specified identifier.
- require() : mixed
- Loads PHP code from the cache and require it right away.
- requireOnce() : mixed
- Loads PHP code from the cache and require_onces it right away.
- set() : mixed
- Saves data in a cache file.
- setCache() : mixed
- Sets a reference to the cache frontend which uses this backend and initializes the default cache directory.
- setCacheDirectory() : mixed
- Sets the directory where the cache files are stored. By default it is assumed that the directory is below TYPO3's Project Path. However, an absolute path can be selected, too.
- setDefaultLifetime() : mixed
- Sets the default lifetime for this cache backend
- calculateExpiryTime() : DateTime
- Calculates the expiry time by the given lifetime. If no lifetime is specified, the default lifetime is used.
- createFinalCacheDirectory() : mixed
- Create the final cache directory if it does not exist.
- findCacheFilesByIdentifier() : mixed
- Tries to find the cache entry for the specified identifier.
- isCacheFileExpired() : bool
- Checks if the given cache entry files are still valid or if their lifetime has exceeded.
Constants
DATASIZE_DIGITS
    public
        mixed
    DATASIZE_DIGITS
    = 10
    
    
    
    
DATETIME_EXPIRYTIME_UNLIMITED
    public
        mixed
    DATETIME_EXPIRYTIME_UNLIMITED
    = '9999-12-31T23:59:59+0000'
    
    
    
    
EXPIRYTIME_FORMAT
    public
        mixed
    EXPIRYTIME_FORMAT
    = 'YmdHis'
    
    
    
    
EXPIRYTIME_LENGTH
    public
        mixed
    EXPIRYTIME_LENGTH
    = 14
    
    
    
    
SEPARATOR
    public
        mixed
    SEPARATOR
    = '^'
    
    
    
    
UNLIMITED_LIFETIME
    public
        mixed
    UNLIMITED_LIFETIME
    = 0
    
    
    
    
Properties
$cache
Reference to the cache which uses this backend
        protected
            FrontendInterface
    $cache
    
    
    
    
    
    
$cacheDirectory
Directory where the files are stored
        protected
            string
    $cacheDirectory
     = ''
    
    
    
    
    
$cacheEntryFileExtension
A file extension to use for each cache entry.
        protected
            string
    $cacheEntryFileExtension
     = ''
    
    
    
    
    
$cacheEntryIdentifiers
        protected
            array<string|int, mixed>
    $cacheEntryIdentifiers
     = []
    
    
    
    
    
$cacheIdentifier
        protected
            string
    $cacheIdentifier
    
    
    
    
    
    
$context
The current application context
        protected
            string
    $context
    
        This variable is currently unused and set to "production" always. It is only kept to keep backwards compatibility.
$defaultLifetime
Default lifetime of a cache entry in seconds
        protected
            int
    $defaultLifetime
     = 3600
    
    
    
    
    
$frozen
        protected
            bool
    $frozen
     = false
    
    
    
    
    
$temporaryCacheDirectory
Temporary path to cache directory before setCache() was called. It is set by setCacheDirectory() and used in setCache() method which calls the directory creation if needed. The variable is not used afterwards, the final cache directory path is stored in $this->cacheDirectory then.
        protected
            string
    $temporaryCacheDirectory
     = ''
    
        Temporary path to cache directory
Methods
__construct()
Constructs this backend
    public
                    __construct(string $context[, array<string|int, mixed> $options = [] ]) : mixed
    Parameters
- $context : string
- 
                    Unused, for backward compatibility only 
- $options : array<string|int, mixed> = []
- 
                    Configuration options - depends on the actual backend 
Tags
collectGarbage()
Does garbage collection
    public
                    collectGarbage() : mixed
    findIdentifiersByTag()
Finds and returns all cache entry identifiers which are tagged by the specified tag.
    public
                    findIdentifiersByTag(string $searchedTag) : array<string|int, mixed>
    Parameters
- $searchedTag : string
- 
                    The tag to search for 
Return values
array<string|int, mixed> —An array with identifiers of all matching entries. An empty array if no entries matched
flush()
Removes all cache entries of this cache and sets the frozen flag to FALSE.
    public
                    flush() : mixed
    flushByTag()
Removes all cache entries of this cache which are tagged by the specified tag.
    public
                    flushByTag(string $tag) : mixed
    Parameters
- $tag : string
- 
                    The tag the entries must have 
flushByTags()
Backwards compatibility safeguard since re-introducing flushByTags as API.
    public
                    flushByTags(array<string|int, string> $tags) : mixed
    See https://review.typo3.org/#/c/50537/ comments for patch set 14.
The method is here even though it is only required for TaggableBackendInterface. We add it here to ensure third party cache backends do not fail but instead delegate to a less efficient linear flushing behavior.
Parameters
- $tags : array<string|int, string>
freeze()
Freezes this cache backend.
    public
                    freeze() : mixed
    All data in a frozen backend remains unchanged and methods which try to add or modify data result in an exception thrown. Possible expiry times of individual cache entries are ignored.
On the positive side, a frozen cache backend is much faster on read access. A frozen backend can only be thawed by calling the flush() method.
Tags
get()
Loads data from a cache file.
    public
                    get(string $entryIdentifier) : mixed
    Parameters
- $entryIdentifier : string
- 
                    An identifier which describes the cache entry to load 
Tags
Return values
mixed —The cache entry's content as a string or FALSE if the cache entry could not be loaded
getCacheDirectory()
Returns the directory where the cache files are stored
    public
                    getCacheDirectory() : string
    Return values
string —Full path of the cache directory
has()
Checks if a cache entry with the specified identifier exists.
    public
                    has(string $entryIdentifier) : bool
    Parameters
- $entryIdentifier : string
Tags
Return values
bool —TRUE if such an entry exists, FALSE if not
isFrozen()
Tells if this backend is frozen.
    public
                    isFrozen() : bool
    Return values
boolremove()
Removes all cache entries matching the specified identifier.
    public
                    remove(string $entryIdentifier) : bool
    Usually this only affects one entry.
Parameters
- $entryIdentifier : string
- 
                    Specifies the cache entry to remove 
Tags
Return values
bool —TRUE if (at least) an entry could be removed or FALSE if no entry was found
require()
Loads PHP code from the cache and require it right away.
    public
                    require(string $entryIdentifier) : mixed
    Parameters
- $entryIdentifier : string
- 
                    An identifier which describes the cache entry to load 
Tags
Return values
mixed —Potential return value from the include operation
requireOnce()
Loads PHP code from the cache and require_onces it right away.
    public
                    requireOnce(string $entryIdentifier) : mixed
    Parameters
- $entryIdentifier : string
- 
                    An identifier which describes the cache entry to load 
Tags
Return values
mixed —Potential return value from the include operation
set()
Saves data in a cache file.
    public
                    set(string $entryIdentifier, string $data[, array<string|int, mixed> $tags = [] ][, int $lifetime = null ]) : mixed
    Parameters
- $entryIdentifier : string
- 
                    An identifier for this specific cache entry 
- $data : string
- 
                    The data to be stored 
- $tags : array<string|int, mixed> = []
- 
                    Tags to associate with this cache entry 
- $lifetime : int = null
- 
                    Lifetime of this cache entry in seconds. If NULL is specified, the default lifetime is used. "0" means unlimited lifetime. 
Tags
setCache()
Sets a reference to the cache frontend which uses this backend and initializes the default cache directory.
    public
                    setCache(FrontendInterface $cache) : mixed
    This method also detects if this backend is frozen and sets the internal flag accordingly.
Parameters
- $cache : FrontendInterface
- 
                    The cache frontend 
setCacheDirectory()
Sets the directory where the cache files are stored. By default it is assumed that the directory is below TYPO3's Project Path. However, an absolute path can be selected, too.
    public
                    setCacheDirectory(string $cacheDirectory) : mixed
    This method enables to use a cache path outside of TYPO3's Project Path. The final cache path is checked and created in createFinalCacheDirectory(), called by setCache() method, which is done after the cacheDirectory option was handled.
Parameters
- $cacheDirectory : string
- 
                    The cache base directory. If a relative path 
Tags
setDefaultLifetime()
Sets the default lifetime for this cache backend
    public
                    setDefaultLifetime(int $defaultLifetime) : mixed
    Parameters
- $defaultLifetime : int
- 
                    Default lifetime of this cache backend in seconds. If NULL is specified, the default lifetime is used. "0" means unlimited lifetime. 
Tags
calculateExpiryTime()
Calculates the expiry time by the given lifetime. If no lifetime is specified, the default lifetime is used.
    protected
                    calculateExpiryTime([int $lifetime = null ]) : DateTime
    Parameters
- $lifetime : int = null
- 
                    The lifetime in seconds 
Return values
DateTime —The expiry time
createFinalCacheDirectory()
Create the final cache directory if it does not exist.
    protected
                    createFinalCacheDirectory(string $finalCacheDirectory) : mixed
    Parameters
- $finalCacheDirectory : string
- 
                    Absolute path to final cache directory 
Tags
findCacheFilesByIdentifier()
Tries to find the cache entry for the specified identifier.
    protected
                    findCacheFilesByIdentifier(string $entryIdentifier) : mixed
    Usually only one cache entry should be found - if more than one exist, this is due to some error or crash.
Parameters
- $entryIdentifier : string
- 
                    The cache entry identifier 
Return values
mixed —The filenames (including path) as an array if one or more entries could be found, otherwise FALSE
isCacheFileExpired()
Checks if the given cache entry files are still valid or if their lifetime has exceeded.
    protected
                    isCacheFileExpired(string $cacheEntryPathAndFilename) : bool
    Parameters
- $cacheEntryPathAndFilename : string