TYPO3 CMS  TYPO3_7-6
TYPO3\CMS\Core\Cache\Backend\ApcuBackend Class Reference
Inheritance diagram for TYPO3\CMS\Core\Cache\Backend\ApcuBackend:
TYPO3\CMS\Core\Cache\Backend\AbstractBackend TYPO3\CMS\Core\Cache\Backend\TaggableBackendInterface TYPO3\CMS\Core\Cache\Backend\BackendInterface TYPO3\CMS\Core\Cache\Backend\BackendInterface

Public Member Functions

 __construct ($context, array $options=[])
 
 setCache (\TYPO3\CMS\Core\Cache\Frontend\FrontendInterface $cache)
 
 set ($entryIdentifier, $data, array $tags=[], $lifetime=null)
 
 get ($entryIdentifier)
 
 has ($entryIdentifier)
 
 remove ($entryIdentifier)
 
 findIdentifiersByTag ($tag)
 
 flush ()
 
 flushByTag ($tag)
 
 collectGarbage ()
 
- Public Member Functions inherited from TYPO3\CMS\Core\Cache\Backend\AbstractBackend
 __construct ($context, array $options=[])
 
 setCache (\TYPO3\CMS\Core\Cache\Frontend\FrontendInterface $cache)
 
 setDefaultLifetime ($defaultLifetime)
 

Protected Member Functions

 setIdentifierPrefix ($identifierPrefix)
 
 getIdentifierPrefix ()
 
 getCurrentUserData ()
 
 getPathSite ()
 
 findTagsByIdentifier ($identifier)
 
 addIdentifierToTags ($entryIdentifier, array $tags)
 
 removeIdentifierFromAllTags ($entryIdentifier)
 
- Protected Member Functions inherited from TYPO3\CMS\Core\Cache\Backend\AbstractBackend
 calculateExpiryTime ($lifetime=null)
 

Protected Attributes

 $identifierPrefix
 
- Protected Attributes inherited from TYPO3\CMS\Core\Cache\Backend\AbstractBackend
 $cache
 
 $cacheIdentifier
 
 $context
 
 $defaultLifetime = 3600
 

Additional Inherited Members

- Public Attributes inherited from TYPO3\CMS\Core\Cache\Backend\AbstractBackend
const DATETIME_EXPIRYTIME_UNLIMITED = '9999-12-31T23:59:59+0000'
 
const UNLIMITED_LIFETIME = 0
 

Detailed Description

A caching backend which stores cache entries by using APCu.

This backend uses the following types of keys:

  • tag_xxx xxx is tag name, value is array of associated identifiers identifier. This is "forward" tag index. It is mainly used for obtaining content by tag (get identifier by tag -> get content by identifier)
  • ident_xxx xxx is identifier, value is array of associated tags. This is "reverse" tag index. It provides quick access for all tags associated with this identifier and used when removing the identifier

Each key is prepended with a prefix. By default prefix consists from two parts separated by underscore character and ends in yet another underscore character:

  • "TYPO3"
  • MD5 of path to TYPO3 and user running TYPO3 This prefix makes sure that keys from the different installations do not conflict.

Definition at line 41 of file ApcuBackend.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::__construct (   $context,
array  $options = [] 
)

Constructs this backend

Parameters
string$contextFLOW3's application context
array$optionsConfiguration options - unused here
Exceptions
Cache

Definition at line 77 of file ApcuBackend.php.

References TYPO3\CMS\Core\Cache\Backend\AbstractBackend\$context.

Member Function Documentation

◆ addIdentifierToTags()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::addIdentifierToTags (   $entryIdentifier,
array  $tags 
)
protected

Associates the identifier with the given tags

Parameters
string$entryIdentifier
array$tags
Returns
void

Definition at line 267 of file ApcuBackend.php.

References TYPO3\CMS\Core\Cache\Backend\ApcuBackend\findIdentifiersByTag(), TYPO3\CMS\Core\Cache\Backend\ApcuBackend\findTagsByIdentifier(), and TYPO3\CMS\Core\Cache\Backend\ApcuBackend\getIdentifierPrefix().

Referenced by TYPO3\CMS\Core\Cache\Backend\ApcuBackend\set().

◆ collectGarbage()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::collectGarbage ( )

Does nothing, as APCu does GC itself

Returns
void

Implements TYPO3\CMS\Core\Cache\Backend\BackendInterface.

Definition at line 329 of file ApcuBackend.php.

◆ findIdentifiersByTag()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::findIdentifiersByTag (   $tag)

Finds and returns all cache entry identifiers which are tagged by the specified tag.

Parameters
string$tagThe tag to search for
Returns
array An array with identifiers of all matching entries. An empty array if no entries matched

Implements TYPO3\CMS\Core\Cache\Backend\TaggableBackendInterface.

Definition at line 205 of file ApcuBackend.php.

References TYPO3\CMS\Core\Cache\Backend\ApcuBackend\getIdentifierPrefix().

Referenced by TYPO3\CMS\Core\Cache\Backend\ApcuBackend\addIdentifierToTags(), TYPO3\CMS\Core\Cache\Backend\ApcuBackend\flushByTag(), and TYPO3\CMS\Core\Cache\Backend\ApcuBackend\removeIdentifierFromAllTags().

◆ findTagsByIdentifier()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::findTagsByIdentifier (   $identifier)
protected

Finds all tags for the given identifier. This function uses reverse tag index to search for tags.

Parameters
string$identifierIdentifier to find tags by
Returns
array Array with tags

Definition at line 223 of file ApcuBackend.php.

References TYPO3\CMS\Core\Cache\Backend\ApcuBackend\getIdentifierPrefix().

Referenced by TYPO3\CMS\Core\Cache\Backend\ApcuBackend\addIdentifierToTags(), and TYPO3\CMS\Core\Cache\Backend\ApcuBackend\removeIdentifierFromAllTags().

◆ flush()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::flush ( )

Removes all cache entries of this cache.

Returns
void
Exceptions
Cache

Implements TYPO3\CMS\Core\Cache\Backend\BackendInterface.

Definition at line 237 of file ApcuBackend.php.

References TYPO3\CMS\Core\Cache\Backend\ApcuBackend\flushByTag().

◆ flushByTag()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::flushByTag (   $tag)

Removes all cache entries of this cache which are tagged by the specified tag.

Parameters
string$tagThe tag the entries must have
Returns
void

Implements TYPO3\CMS\Core\Cache\Backend\TaggableBackendInterface.

Definition at line 252 of file ApcuBackend.php.

References TYPO3\CMS\Core\Cache\Backend\ApcuBackend\findIdentifiersByTag().

Referenced by TYPO3\CMS\Core\Cache\Backend\ApcuBackend\flush().

◆ get()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::get (   $entryIdentifier)

Loads data from the cache.

Parameters
string$entryIdentifierAn identifier which describes the cache entry to load
Returns
mixed The cache entry's content as a string or FALSE if the cache entry could not be loaded

Implements TYPO3\CMS\Core\Cache\Backend\BackendInterface.

Definition at line 161 of file ApcuBackend.php.

References TYPO3\CMS\Core\Cache\Backend\ApcuBackend\getIdentifierPrefix().

◆ getCurrentUserData()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::getCurrentUserData ( )
protected

Returns the current user data with posix_getpwuid or a default structure when posix_getpwuid is not available.

Returns
array

Definition at line 108 of file ApcuBackend.php.

Referenced by TYPO3\CMS\Core\Cache\Backend\ApcuBackend\setCache().

◆ getIdentifierPrefix()

◆ getPathSite()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::getPathSite ( )
protected

Returns the PATH_site constant.

Returns
string

Definition at line 118 of file ApcuBackend.php.

Referenced by TYPO3\CMS\Core\Cache\Backend\ApcuBackend\setCache().

◆ has()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::has (   $entryIdentifier)

Checks if a cache entry with the specified identifier exists.

Parameters
string$entryIdentifierAn identifier specifying the cache entry
Returns
bool TRUE if such an entry exists, FALSE if not

Implements TYPO3\CMS\Core\Cache\Backend\BackendInterface.

Definition at line 175 of file ApcuBackend.php.

References TYPO3\CMS\Core\Cache\Backend\ApcuBackend\getIdentifierPrefix().

◆ remove()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::remove (   $entryIdentifier)

Removes all cache entries matching the specified identifier. Usually this only affects one entry but if - for what reason ever - old entries for the identifier still exist, they are removed as well.

Parameters
string$entryIdentifierSpecifies the cache entry to remove
Returns
bool TRUE if (at least) an entry could be removed or FALSE if no entry was found

Implements TYPO3\CMS\Core\Cache\Backend\BackendInterface.

Definition at line 191 of file ApcuBackend.php.

References TYPO3\CMS\Core\Cache\Backend\ApcuBackend\getIdentifierPrefix(), and TYPO3\CMS\Core\Cache\Backend\ApcuBackend\removeIdentifierFromAllTags().

◆ removeIdentifierFromAllTags()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::removeIdentifierFromAllTags (   $entryIdentifier)
protected

◆ set()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::set (   $entryIdentifier,
  $data,
array  $tags = [],
  $lifetime = null 
)

Saves data in the cache.

Parameters
string$entryIdentifierAn identifier for this specific cache entry
string$dataThe data to be stored
array$tagsTags to associate with this cache entry
int$lifetimeLifetime of this cache entry in seconds. If NULL is specified, the default lifetime is used. "0" means unlimited liftime.
Returns
void
Exceptions
Cache

Implements TYPO3\CMS\Core\Cache\Backend\BackendInterface.

Definition at line 135 of file ApcuBackend.php.

References TYPO3\CMS\Core\Cache\Backend\AbstractBackend\$cacheIdentifier, TYPO3\CMS\Core\Cache\Backend\AbstractBackend\$defaultLifetime, TYPO3\CMS\Core\Cache\Backend\ApcuBackend\addIdentifierToTags(), TYPO3\CMS\Core\Cache\Backend\ApcuBackend\getIdentifierPrefix(), and TYPO3\CMS\Core\Cache\Backend\ApcuBackend\removeIdentifierFromAllTags().

◆ setCache()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::setCache ( \TYPO3\CMS\Core\Cache\Frontend\FrontendInterface  $cache)

Initializes the identifier prefix when setting the cache.

Parameters
\TYPO3\CMS\Core\Cache\Frontend\FrontendInterface$cache
Returns
void

Implements TYPO3\CMS\Core\Cache\Backend\BackendInterface.

Definition at line 94 of file ApcuBackend.php.

References TYPO3\CMS\Core\Cache\Backend\ApcuBackend\getCurrentUserData(), TYPO3\CMS\Core\Cache\Backend\ApcuBackend\getPathSite(), TYPO3\CMS\Core\Cache\Backend\ApcuBackend\setIdentifierPrefix(), and TYPO3\CMS\Core\Utility\GeneralUtility\shortMD5().

◆ setIdentifierPrefix()

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::setIdentifierPrefix (   $identifierPrefix)
protected

Set the cache identifier prefix.

Parameters
string$identifierPrefix

Definition at line 55 of file ApcuBackend.php.

References TYPO3\CMS\Core\Cache\Backend\ApcuBackend\$identifierPrefix.

Referenced by TYPO3\CMS\Core\Cache\Backend\ApcuBackend\setCache().

Member Data Documentation

◆ $identifierPrefix

TYPO3\CMS\Core\Cache\Backend\ApcuBackend::$identifierPrefix
protected