content to be cached
where content to be cached can be static text and/or component tags.
The validity of the cached content is determined based on two factors:
the {@link setDuration Duration} and the cache dependency.
The former specifies the number of seconds that the data can remain
valid in cache (defaults to 60s), while the latter specifies conditions
that the cached data depends on. If a dependency changes,
(e.g. relevant data in DB are updated), the cached data will be invalidated.
There are two ways to specify cache dependency. One may write event handlers
to respond to the {@link onCheckDependency OnCheckDependency} event and set
the event parameter's {@link TOutputCacheCheckDependencyEventParameter::getIsValid IsValid}
property to indicate whether the cached data remains valid or not.
One can also extend TOutputCache and override its {@link getCacheDependency}
function. While the former is easier to use, the latter offers more extensibility.
The content fetched from cache may be variated with respect to
some parameters. It supports variation with respect to request parameters,
which is specified by {@link setVaryByParam VaryByParam} property.
If a specified request parameter is different, a different version of
cached content is used. This is extremely useful if a page's content
may be variated according to some GET parameters.
The content being cached may also be variated with user sessions if
{@link setVaryBySession VaryBySession} is set true.
To variate the cached content by other factors, override {@link calculateCacheKey()} method.
Output caches can be nested. An outer cache takes precedence over an
inner cache. This means, if the content cached by the inner cache expires
or is invalidated, while that by the outer cache not, the outer cached
content will be used.
Note, TOutputCache is effective only for non-postback page requests
and when cache module is enabled.
Do not attempt to address child controls of TOutputCache when the cached
content is to be used. Use {@link getContentCached ContentCached} property
to determine whether the content is cached or not.
Show file
Open project: pradosoft/prado
Method | Description | |
---|---|---|
getAllowChildControls ( ) | Returns a value indicating whether body contents are allowed for this control. | |
getCacheKey ( ) | ||
getCacheModuleID ( ) : string | ||
getCacheTime ( ) : integer | ||
getCachingPostBack ( ) : boolean | ||
getContentCached ( ) : boolean | ||
getDuration ( ) : integer | ||
getVaryByParam ( ) : string | ||
getVaryBySession ( ) : boolean | ||
onCalculateKey ( $param ) | This event is raised when the output cache is calculating cache key. | |
onCheckDependency ( $param ) | This event is raised when the output cache is checking cache dependency. | |
registerAction ( $context, $funcName, $funcParams ) | Registers an action associated with the content being cached. | |
render ( $writer ) | Renders the output cache control. | |
setCacheKeyPrefix ( $value ) | Sets the prefix of the cache key. | |
setCacheModuleID ( $value ) | ||
setCachingPostBack ( $value ) | Sets a value indicating whether cached output will be used on postback requests. | |
setDuration ( $value ) | ||
setVaryByParam ( $value ) : string | Sets the names of the request parameters that should be used in calculating the cache key. | |
setVaryBySession ( $value ) |
Method | Description | |
---|---|---|
calculateCacheKey ( ) : string | Calculates the cache key. | |
getBaseCacheKey ( ) : string | ||
getCacheDependency ( ) : ICacheDependency | Returns the dependency of the data to be cached. | |
initRecursive ( $namingContainer = null ) | Performs the Init step for the control and all its child controls. | |
loadRecursive ( ) | Performs the Load step for the control and all its child controls. | |
loadStateRecursive ( &$state, $needViewState = true ) | Loads state (viewstate and controlstate) into a control and its children. | |
preRenderRecursive ( ) | Performs the PreRender step for the control and all its child controls. | |
saveStateRecursive ( $needViewState = true ) : array | Saves all control state (viewstate and controlstate) as a collection. |
Method | Description | |
---|---|---|
determineCacheability ( ) | ||
performActions ( ) |
protected calculateCacheKey ( ) : string | ||
return | string | cache key |
public getAllowChildControls ( ) |
protected getBaseCacheKey ( ) : string | ||
return | string | basic cache key without variations |
protected getCacheDependency ( ) : ICacheDependency | ||
return | ICacheDependency |
public getCacheModuleID ( ) : string | ||
return | string | the ID of the cache module. Defaults to '', meaning the primary cache module is used. |
public getCacheTime ( ) : integer | ||
return | integer | the timestamp of the cached content. This is only valid if the content is being cached. |
public getCachingPostBack ( ) : boolean | ||
return | boolean | whether cached output will be used on postback requests. Defaults to false. |
public getContentCached ( ) : boolean | ||
return | boolean | whether content enclosed is cached or not |
public getDuration ( ) : integer | ||
return | integer | number of seconds that the data can remain in cache. Defaults to 60 seconds. Note, if cache dependency changes or cache space is limited, the data may be purged out of cache earlier. |
public getVaryByParam ( ) : string | ||
return | string | a semicolon-separated list of strings used to vary the output cache. Defaults to ''. |
public getVaryBySession ( ) : boolean | ||
return | boolean | whether the content being cached should be differentiated according to user sessions. Defaults to false. |
protected initRecursive ( $namingContainer = null ) |
protected loadRecursive ( ) |
protected loadStateRecursive ( &$state, $needViewState = true ) |
public onCalculateKey ( $param ) |
public onCheckDependency ( $param ) |
protected preRenderRecursive ( ) |
public registerAction ( $context, $funcName, $funcParams ) |
public render ( $writer ) |
protected saveStateRecursive ( $needViewState = true ) : array | ||
return | array | the collection of the control state (including its children's state). |
public setCacheKeyPrefix ( $value ) |
public setCachingPostBack ( $value ) |
public setVaryByParam ( $value ) : string | ||
return | string | a semicolon-separated list of strings used to vary the output cache. |