Cache/Backend/TwoLevels.php
Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to [email protected] so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Cache
- Subpackage
- Zend_Cache_Backend
- Version
- $Id: TwoLevels.php 24593 2012-01-05 20:35:02Z matthew $
\Zend_Cache_Backend_TwoLevels
- Implements
- \Zend_Cache_Backend_ExtendedInterface
- Parent(s)
- \Zend_Cache_Backend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Properties


array $_directives = array('lifetime' => 3600, 'logging' => false, 'logger' => null)
Frontend or Core directives
<p>directives</p>Inherited from: \Zend_Cache_Backend::$$_directives=====> (int) lifetime : - Cache lifetime (in seconds) - If null, the cache is valid forever
=====> (int) logging : - if set to true, a logging is activated throw Zend_Log
array('lifetime' => 3600, 'logging' => false, 'logger' => null)
Details- Type
- array
- Inherited_from
- \Zend_Cache_Backend::$$_directives


int $_fastBackendFillingPercentage = null
Cache for the fast backend filling percentage
null
Details- Type
- int


array $_options = array('slow_backend' => 'File', 'fast_backend' => 'Apc', 'slow_backend_options' => array(), 'fast_backend_options' => array(), 'stats_update_factor' => 10, 'slow_backend_custom_naming' => false, 'fast_backend_custom_naming' => false, 'slow_backend_autoload' => false, 'fast_backend_autoload' => false, 'auto_refresh_fast_cache' => true)
Available options
<p>available options</p>=====> (string) slow_backend : - Slow backend name - Must implement the Zend_Cache_Backend_ExtendedInterface - Should provide a big storage
=====> (string) fast_backend : - Flow backend name - Must implement the Zend_Cache_Backend_ExtendedInterface - Must be much faster than slow_backend
=====> (array) slow_backend_options : - Slow backend options (see corresponding backend)
=====> (array) fast_backend_options : - Fast backend options (see corresponding backend)
=====> (int) stats_update_factor : - Disable / Tune the computation of the fast backend filling percentage - When saving a record into cache : 1 => systematic computation of the fast backend filling percentage x (integer) > 1 => computation of the fast backend filling percentage randomly 1 times on x cache write
=====> (boolean) slow_backend_custom_naming : =====> (boolean) fast_backend_custom_naming : =====> (boolean) slow_backend_autoload : =====> (boolean) fast_backend_autoload : - See Zend_Cache::factory() method
=====> (boolean) auto_refresh_fast_cache - If true, auto refresh the fast cache when a cache record is hit
array('slow_backend' => 'File', 'fast_backend' => 'Apc', 'slow_backend_options' => array(), 'fast_backend_options' => array(), 'stats_update_factor' => 10, 'slow_backend_custom_naming' => false, 'fast_backend_custom_naming' => false, 'slow_backend_autoload' => false, 'fast_backend_autoload' => false, 'auto_refresh_fast_cache' => true)
Details- Type
- array
Methods


___expire(string $id) : void
PUBLIC METHOD FOR UNIT TESTING ONLY !
Force a cache record to expire
Name | Type | Description |
---|---|---|
$id | string | cache id |


__construct(array $options = array()) : void
Constructor
Name | Type | Description |
---|---|---|
$options | array | Associative array of options |
Exception | Description |
---|---|
\Zend_Cache_Exception |


_getFastLifetime(int $lifetime, int $priority, int $maxLifetime = null) : int
Compute and return the lifetime for the fast backend
Name | Type | Description |
---|---|---|
$lifetime | int | original lifetime |
$priority | int | priority |
$maxLifetime | int | maximum lifetime |
Type | Description |
---|---|
int | lifetime for the fast backend |


_isGoodTmpDir(string $dir) : boolean
Verify if the given temporary directory is readable and writable
Inherited from: \Zend_Cache_Backend::_isGoodTmpDir()Name | Type | Description |
---|---|---|
$dir | string | temporary directory |
Type | Description |
---|---|
boolean | true if the directory is ok |


_log(string $message, $priority = 4) : void
Name | Type | Description |
---|---|---|
$message | string | |
$priority |
Exception | Description |
---|---|
\Zend_Cache_Exception |


_loggerSanity() : void
Make sure if we enable logging that the Zend_Log class is available.
Inherited from: \Zend_Cache_Backend::_loggerSanity()Create a default log object if none is set.
Exception | Description |
---|---|
\Zend_Cache_Exception |


_prepareData(string $data, int $lifetime, int $priority) : string
Prepare a serialized array to store datas and metadatas informations
Name | Type | Description |
---|---|---|
$data | string | data to store |
$lifetime | int | original lifetime |
$priority | int | priority |
Type | Description |
---|---|
string | serialize array to store into cache |


clean(string $mode = \Zend_Cache::CLEANING_MODE_ALL, array $tags = array()) : boolean
Clean some cache records
Available modes are : Zend_Cache::CLEANING_MODE_ALL (default) => remove all cache entries ($tags is not used) Zend_Cache::CLEANING_MODE_OLD => remove too old cache entries ($tags is not used) Zend_Cache::CLEANING_MODE_MATCHING_TAG => remove cache entries matching all given tags ($tags can be an array of strings or a single string) Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG => remove cache entries not {matching one of the given tags} ($tags can be an array of strings or a single string) Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG => remove cache entries matching any given tags ($tags can be an array of strings or a single string)
Name | Type | Description |
---|---|---|
$mode | string | Clean mode |
$tags | array | Array of tags |
Type | Description |
---|---|
boolean | true if no problem |
Exception | Description |
---|---|
\Zend_Cache_Exception |


getCapabilities() : array
Return an associative array of capabilities (booleans) of the backend
The array must include these keys : - automatic_cleaning (is automating cleaning necessary) - tags (are tags supported) - expired_read (is it possible to read expired cache records (for doNotTestCacheValidity option for example)) - priority does the backend deal with priority when saving - infinite_lifetime (is infinite lifetime can work with this backend) - get_list (is it possible to get the list of cache ids and the complete list of tags)
Type | Description |
---|---|
array | associative of with capabilities |


getFillingPercentage() : int
Return the filling percentage of the backend storage
Type | Description |
---|---|
int | integer between 0 and 100 |


getIds() : array
Return an array of stored cache ids
Type | Description |
---|---|
array | array of stored cache ids (string) |


getIdsMatchingAnyTags(array $tags = array()) : array
Return an array of stored cache ids which match any given tags
In case of multiple tags, a logical AND is made between tags
Name | Type | Description |
---|---|---|
$tags | array | array of tags |
Type | Description |
---|---|
array | array of any matching cache ids (string) |


getIdsMatchingTags(array $tags = array()) : array
Return an array of stored cache ids which match given tags
In case of multiple tags, a logical AND is made between tags
Name | Type | Description |
---|---|---|
$tags | array | array of tags |
Type | Description |
---|---|
array | array of matching cache ids (string) |


getIdsNotMatchingTags(array $tags = array()) : array
Return an array of stored cache ids which don't match given tags
In case of multiple tags, a logical OR is made between tags
Name | Type | Description |
---|---|---|
$tags | array | array of tags |
Type | Description |
---|---|
array | array of not matching cache ids (string) |


getLifetime(int $specificLifetime) : int
if $specificLifetime is not false, the given specific life time is used else, the global lifetime is used
Name | Type | Description |
---|---|---|
$specificLifetime | int |
Type | Description |
---|---|
int | Cache life time |


getMetadatas(string $id) : array
Return an array of metadatas for the given cache id
The array must include these keys : - expire : the expire timestamp - tags : a string array of tags - mtime : timestamp of last modification time
Name | Type | Description |
---|---|---|
$id | string | cache id |
Type | Description |
---|---|
array | array of metadatas (false if the cache id is not found) |


getOption(string $name) : mixed
Name | Type | Description |
---|---|---|
$name | string | Optional, the options name to return |
Type | Description |
---|---|
mixed |
Exception | Description |
---|---|
\Zend_Cache_Exceptions |


getTags() : array
Return an array of stored tags
Type | Description |
---|---|
array | array of stored tags (string) |


getTmpDir() : string
Determine system TMP directory and detect if we have read access
Inherited from: \Zend_Cache_Backend::getTmpDir()inspired from Zend_File_Transfer_Adapter_Abstract
Type | Description |
---|---|
string |
Exception | Description |
---|---|
\Zend_Cache_Exception | if unable to determine directory |


isAutomaticCleaningAvailable() : boolean
Return true if the automatic cleaning is available for the backend
Inherited from: \Zend_Cache_Backend::isAutomaticCleaningAvailable()DEPRECATED : use getCapabilities() instead
Type | Description |
---|---|
boolean |


load(string $id, boolean $doNotTestCacheValidity = false) : string | false
Test if a cache is available for the given id and (if yes) return it (false else)
Note : return value is always "string" (unserialization is done by the core not by the backend)
Name | Type | Description |
---|---|---|
$id | string | Cache id |
$doNotTestCacheValidity | boolean | If set to true, the cache validity won't be tested |
Type | Description |
---|---|
string | false | cached datas |


remove(string $id) : boolean
Remove a cache record
Name | Type | Description |
---|---|---|
$id | string | Cache id |
Type | Description |
---|---|
boolean | True if no problem |


save(string $data, string $id, array $tags = array(), int $specificLifetime = false, int $priority = 8) : boolean
Save some string datas into a cache record
Note : $data is always "string" (serialization is done by the core not by the backend)
Name | Type | Description |
---|---|---|
$data | string | Datas to cache |
$id | string | Cache id |
$tags | array | Array of strings, the cache record will be tagged by each string entry |
$specificLifetime | int | If != false, set a specific lifetime for this cache record (null => infinite lifetime) |
$priority | int | integer between 0 (very low priority) and 10 (maximum priority) used by some particular backends |
Type | Description |
---|---|
boolean | true if no problem |


setDirectives(array $directives) : void
Name | Type | Description |
---|---|---|
$directives | array | Assoc of directives |
Exception | Description |
---|---|
\Zend_Cache_Exception |


setOption(string $name, mixed $value) : void
Name | Type | Description |
---|---|---|
$name | string | |
$value | mixed |
Exception | Description |
---|---|
\Zend_Cache_Exception |


test(string $id) : mixed | false
Test if a cache is available or not (for the given id)
Name | Type | Description |
---|---|---|
$id | string | cache id |
Type | Description |
---|---|
mixed | false | (a cache is not available) or "last modified" timestamp (int) of the available cache record |