Class TCache
Direct Known Sub-classes:
TCache class
TCache is the base class for cache classes with different cache storage implementation. TCache implements the interface ICache with the following methods, - get : retrieve the value with a key (if any) from cache
- set : store the value with a key into cache
- add : store the value only if cache does not have this key
- delete : delete the value with the specified key from cache
- flush : delete all values from cache
Each value is associated with an expiration time. The get operation ensures that any expired value will not be returned. The expiration time by the number of seconds. A expiration time 0 represents never expire. By definition, cache does not ensure the existence of a value even if it never expires. Cache is not meant to be an persistent storage. Child classes must implement the following methods: and optionally flushSince version 3.1.2, TCache implements the ArrayAccess interface such that the cache acts as an array.
Method Summary |
boolean
|
Stores a value identified by a key into cache if the cache does not contain this key.
|
protected
abstract
boolean
|
addValue
( string $key, string $value, integer $expire)
Stores a value identified by a key into cache if the cache does not contain this key.
|
boolean
|
Deletes a value with the specified key from cache
|
protected
abstract
boolean
|
Deletes a value with the specified key from cache This method should be implemented by child classes to delete the data from actual cache storage.
|
void
|
Deletes all values from cache.
|
protected
sring
|
|
mixed
|
Retrieves a value from cache with a specified key.
|
string
|
|
boolean
|
|
protected
abstract
string
|
Retrieves a value from cache with a specified key.
|
void
|
Initializes the cache module.
|
boolean
|
Returns whether there is a cache entry with a specified key.
|
void
|
|
void
|
|
void
|
|
boolean
|
Stores a value identified by a key into cache.
|
void
|
|
void
|
|
protected
abstract
boolean
|
setValue
( string $key, string $value, integer $expire)
Stores a value identified by a key in cache.
|
Methods Inherited From TComponent |
TComponent::addParsedObject(), TComponent::attachEventHandler(), TComponent::canGetProperty(), TComponent::canSetProperty(), TComponent::createdOnTemplate(), TComponent::detachEventHandler(), TComponent::evaluateExpression(), TComponent::evaluateStatements(), TComponent::getEventHandlers(), TComponent::getSubProperty(), TComponent::hasEvent(), TComponent::hasEventHandler(), TComponent::hasProperty(), TComponent::raiseEvent(), TComponent::setSubProperty(), TComponent::__get(), TComponent::__set()
|
Method Details |
add
public boolean add |
(string $id , mixed $value , integer $expire , ICacheDependency $dependency ) |
Stores a value identified by a key into cache if the cache does not contain this key.
Nothing will be done if the cache already contains the key or if value is empty.
Input |
string | $id | the key identifying the value to be cached |
mixed | $value | the value to be cached |
integer | $expire | the number of seconds in which the cached value will expire. 0 means never expire. |
ICacheDependency | $dependency | dependency of the cached item. If the dependency changes, the item is labeled invalid. |
Output |
boolean
| true if the value is successfully stored into cache, false otherwise |
Exception |
|
addValue
protected abstract boolean addValue |
(string $key , string $value , integer $expire ) |
Stores a value identified by a key into cache if the cache does not contain this key.
This method should be implemented by child classes to store the data in specific cache storage. The uniqueness and dependency are handled in add() already. So only the implementation of data storage is needed.
Input |
string | $key | the key identifying the value to be cached |
string | $value | the value to be cached |
integer | $expire | the number of seconds in which the cached value will expire. 0 means never expire. |
Output |
boolean
| true if the value is successfully stored into cache, false otherwise |
Exception |
|
delete
public boolean delete |
(string $id ) |
Deletes a value with the specified key from cache
Input |
string | $id | the key of the value to be deleted |
Output |
boolean
| if no error happens during deletion |
Exception |
|
deleteValue
protected abstract boolean deleteValue |
(string $key ) |
Deletes a value with the specified key from cache This method should be implemented by child classes to delete the data from actual cache storage.
Input |
string | $key | the key of the value to be deleted |
Output |
boolean
| if no error happens during deletion |
Exception |
|
flush
Deletes all values from cache.
Be careful of performing this operation if the cache is shared by multiple applications. Child classes may implement this method to realize the flush operation.
Output |
Exception |
throws | TNotSupportedException if this method is not overridden by child classes |
|
generateUniqueKey
protected sring generateUniqueKey |
(string $key ) |
Input |
string | $key | a key identifying a value to be cached |
Output |
sring
| a key generated from the provided key which ensures the uniqueness across applications |
Exception |
|
get
public mixed get |
(string $id ) |
Retrieves a value from cache with a specified key.
Input |
string | $id | a key identifying the cached value |
Output |
mixed
| the value stored in cache, false if the value is not in the cache or expired. |
Exception |
|
getKeyPrefix
public string getKeyPrefix |
() |
Output |
string
| a unique prefix for the keys of cached values. If it is not explicitly set, it will take the value of TApplication::getUniqueID. |
Exception |
|
getPrimaryCache
public boolean getPrimaryCache |
() |
Output |
boolean
| whether this cache module is used as primary/system cache. A primary cache is used by PRADO core framework to cache data such as parsed templates, themes, etc. |
Exception |
|
getValue
protected abstract string getValue |
(string $key ) |
Retrieves a value from cache with a specified key.
This method should be implemented by child classes to store the data in specific cache storage. The uniqueness and dependency are handled in get() already. So only the implementation of data retrieval is needed.
Input |
string | $key | a unique key identifying the cached value |
Output |
string
| the value stored in cache, false if the value is not in the cache or expired. |
Exception |
|
init
Initializes the cache module.
This method initializes the cache key prefix and registers the cache module with the application if the cache is primary.
Input |
TXmlElement | $config | the module configuration |
Output |
Exception |
|
offsetExists
public boolean offsetExists |
(string $id ) |
Returns whether there is a cache entry with a specified key.
This method is required by the interface ArrayAccess.
Input |
string | $id | a key identifying the cached value |
Output |
Exception |
|
offsetGet
public void offsetGet |
(mixed $id ) |
Input |
mixed | $id | |
Output |
Exception |
|
offsetSet
public void offsetSet |
(mixed $id , mixed $value ) |
Input |
mixed | $id | |
mixed | $value | |
Output |
Exception |
|
offsetUnset
public void offsetUnset |
(mixed $id ) |
Input |
mixed | $id | |
Output |
Exception |
|
set
public boolean set |
(string $id , mixed $value , integer $expire , ICacheDependency $dependency ) |
Stores a value identified by a key into cache.
If the cache already contains such a key, the existing value and expiration time will be replaced with the new ones. If the value is empty, the cache key will be deleted.
Input |
string | $id | the key identifying the value to be cached |
mixed | $value | the value to be cached |
integer | $expire | the number of seconds in which the cached value will expire. 0 means never expire. |
ICacheDependency | $dependency | dependency of the cached item. If the dependency changes, the item is labeled invalid. |
Output |
boolean
| true if the value is successfully stored into cache, false otherwise |
Exception |
|
setKeyPrefix
public void setKeyPrefix |
(string $value ) |
Input |
string | $value | a unique prefix for the keys of cached values |
Output |
Exception |
|
setPrimaryCache
public void setPrimaryCache |
(boolean $value ) |
Input |
boolean | $value | whether this cache module is used as primary/system cache. Defaults to false. |
Output |
Exception |
|
setValue
protected abstract boolean setValue |
(string $key , string $value , integer $expire ) |
Stores a value identified by a key in cache.
This method should be implemented by child classes to store the data in specific cache storage. The uniqueness and dependency are handled in set() already. So only the implementation of data storage is needed.
Input |
string | $key | the key identifying the value to be cached |
string | $value | the value to be cached |
integer | $expire | the number of seconds in which the cached value will expire. 0 means never expire. |
Output |
boolean
| true if the value is successfully stored into cache, false otherwise |
Exception |
|
|