Cache/Core.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
- Version
- $Id: Core.php 24989 2012-06-21 07:24:13Z mabe $
\Zend_Cache_Core
- Children
- \Zend_Cache_Frontend_Class
- \Zend_Cache_Frontend_File
- \Zend_Cache_Frontend_Capture
- \Zend_Cache_Frontend_Page
- \Zend_Cache_Frontend_Output
- \Zend_Cache_Frontend_Function
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Constants
Properties

array $_backendCapabilities = array()Array of capabilities of the backend (only if it implements Zend_Cache_Backend_ExtendedInterface)
array()Details- Type
- array

array $_directivesList = array('lifetime', 'logging', 'logger')Array of options which have to be transfered to backend
array('lifetime', 'logging', 'logger')Details- Type
- array

boolean $_extendedBackend = falseTrue if the backend implements Zend_Cache_Backend_ExtendedInterface
falseDetails- Type
- boolean

array $_options = array('write_control' => true, 'caching' => true, 'cache_id_prefix' => null, 'automatic_serialization' => false, 'automatic_cleaning_factor' => 10, 'lifetime' => 3600, 'logging' => false, 'logger' => null, 'ignore_user_abort' => false)Available options
<p>available options</p>====> (boolean) write_control : - Enable / disable write control (the cache is read just after writing to detect corrupt entries) - Enable write control will lightly slow the cache writing but not the cache reading Write control can detect some corrupt cache files but maybe it's not a perfect control
====> (boolean) caching : - Enable / disable caching (can be very useful for the debug of cached scripts)
=====> (string) cache_id_prefix : - prefix for cache ids (namespace)
====> (boolean) automatic_serialization : - Enable / disable automatic serialization - It can be used to save directly datas which aren't strings (but it's slower)
====> (int) automatic_cleaning_factor : - Disable / Tune the automatic cleaning process - The automatic cleaning process destroy too old (for the given life time) cache files when a new cache file is written : 0 => no automatic cache cleaning 1 => systematic cache cleaning x (integer) > 1 => automatic cleaning randomly 1 times on x cache write
====> (int) lifetime : - Cache lifetime (in seconds) - If null, the cache is valid forever.
====> (boolean) logging : - If set to true, logging is activated (but the system is slower)
====> (boolean) ignore_user_abort - If set to true, the core will set the ignore_user_abort PHP flag inside the save() method to avoid cache corruptions in some cases (default false)
array('write_control' => true, 'caching' => true, 'cache_id_prefix' => null, 'automatic_serialization' => false, 'automatic_cleaning_factor' => 10, 'lifetime' => 3600, 'logging' => false, 'logger' => null, 'ignore_user_abort' => false)Details- Type
- array
Methods

__construct(array | \Zend_Config $options = array()) : voidConstructor
| Name | Type | Description |
|---|---|---|
| $options | array | \Zend_Config | Associative array of options or Zend_Config instance |
| Exception | Description |
|---|---|
| \Zend_Cache_Exception |

_id(string $id) : stringMake and return a cache id
Checks 'cache_id_prefix' and returns new id with prefix or simply the id if null
| Name | Type | Description |
|---|---|---|
| $id | string | Cache id |
| Type | Description |
|---|---|
| string | Cache id (with or without prefix) |

_log(string $message, $priority = 4) : voidLog a message at the WARN (4) priority.
| Name | Type | Description |
|---|---|---|
| $message | string | |
| $priority |
| Exception | Description |
|---|---|
| \Zend_Cache_Exception |

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

_setOption(string $name, mixed $value) : voidSet an option
| Name | Type | Description |
|---|---|---|
| $name | string | Name of the option |
| $value | mixed | Value of the option |
| Exception | Description |
|---|---|
| \Zend_Cache_Exception |

_validateIdOrTag(string $string) : voidValidate a cache id or a tag (security, reliable filenames, reserved prefixes.
..)
Throw an exception if a problem is found
| Name | Type | Description |
|---|---|---|
| $string | string | Cache id or tag |
| Exception | Description |
|---|---|
| \Zend_Cache_Exception |

_validateTagsArray(array $tags) : voidValidate a tags array (security, reliable filenames, reserved prefixes.
..)
Throw an exception if a problem is found
| Name | Type | Description |
|---|---|---|
| $tags | array | Array of tags |
| Exception | Description |
|---|---|
| \Zend_Cache_Exception |

clean(string $mode = 'all', array | string $tags = array()) : booleanClean cache entries
Available modes are : 'all' (default) => remove all cache entries ($tags is not used) 'old' => remove too old cache entries ($tags is not used) 'matchingTag' => remove cache entries matching all given tags ($tags can be an array of strings or a single string) 'notMatchingTag' => remove cache entries not matching one of the given tags ($tags can be an array of strings or a single string) 'matchingAnyTag' => remove cache entries matching any given tags ($tags can be an array of strings or a single string)
| Name | Type | Description |
|---|---|---|
| $mode | string | |
| $tags | array | string |
| Type | Description |
|---|---|
| boolean | True if ok |
| Exception | Description |
|---|---|
| \Zend_Cache_Exception |

getBackend() : \Zend_Cache_BackendReturns the backend
| Type | Description |
|---|---|
| \Zend_Cache_Backend | backend object |

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

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

getIdsMatchingAnyTags(array $tags = array()) : arrayReturn an array of stored cache ids which match any 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 matching any cache ids (string) |

getIdsMatchingTags(array $tags = array()) : arrayReturn 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()) : arrayReturn 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) |

getMetadatas(string $id) : arrayReturn an array of metadatas for the given cache id
The array will 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) : mixedPublic frontend to get an option value
| Name | Type | Description |
|---|---|---|
| $name | string | Name of the option |
| Type | Description |
|---|---|
| mixed | option value |
| Exception | Description |
|---|---|
| \Zend_Cache_Exception |

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

load(string $id, boolean $doNotTestCacheValidity = false, boolean $doNotUnserialize = false) : mixed | falseTest if a cache is available for the given id and (if yes) return it (false else)
| Name | Type | Description |
|---|---|---|
| $id | string | Cache id |
| $doNotTestCacheValidity | boolean | If set to true, the cache validity won't be tested |
| $doNotUnserialize | boolean | Do not serialize (even if automatic_serialization is true) => for internal use |
| Type | Description |
|---|---|
| mixed | false | Cached datas |

remove(string $id) : booleanRemove a cache
| Name | Type | Description |
|---|---|---|
| $id | string | Cache id to remove |
| Type | Description |
|---|---|
| boolean | True if ok |

save(mixed $data, string $id = null, array $tags = array(), int $specificLifetime = false, int $priority = 8) : booleanSave some data in a cache
| Name | Type | Description |
|---|---|---|
| $data | mixed | Data to put in cache (can be another type than string if automatic_serialization is on) |
| $id | string | Cache id (if not set, the last cache id will be used) |
| $tags | array | Cache tags |
| $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 |
| Exception | Description |
|---|---|
| \Zend_Cache_Exception |

setBackend(\Zend_Cache_Backend $backendObject) : voidSet the backend
| Name | Type | Description |
|---|---|---|
| $backendObject | \Zend_Cache_Backend |
| Exception | Description |
|---|---|
| \Zend_Cache_Exception |

setConfig(\Zend_Config $config) : \Zend_Cache_CoreSet options using an instance of type Zend_Config
| Name | Type | Description |
|---|---|---|
| $config | \Zend_Config |
| Type | Description |
|---|---|
| \Zend_Cache_Core |

setLifetime(int $newLifetime) : voidForce a new lifetime
The new value is set for the core/frontend but for the backend too (directive)
| Name | Type | Description |
|---|---|---|
| $newLifetime | int | New lifetime (in seconds) |

setOption(string $name, mixed $value) : voidPublic frontend to set an option
There is an additional validation (relatively to the protected _setOption method)
| Name | Type | Description |
|---|---|---|
| $name | string | Name of the option |
| $value | mixed | Value of the option |
| Exception | Description |
|---|---|
| \Zend_Cache_Exception |

test(string $id) : int | falseTest if a cache is available for the given id
| Name | Type | Description |
|---|---|---|
| $id | string | Cache id |
| Type | Description |
|---|---|
| int | false | Last modified time of cache entry if it is available, false otherwise |