1 common.inc | backdrop_render_cache_set(&$markup, $elements) |
Caches the rendered output of a renderable element.
This is called by backdrop_render() if the #cache property is set on an element.
Parameters
$markup: The rendered output string of $elements.
$elements: A renderable array.
Return value
bool: TRUE if the render cache was set. FALSE if it is unable to be set.
See also
File
- core/
includes/ common.inc, line 7067 - Common functions that many Backdrop modules will need to reference.
Code
function backdrop_render_cache_set(&$markup, $elements) {
// Create the cache ID for the element.
if (!in_array($_SERVER['REQUEST_METHOD'], array('GET', 'HEAD')) || !$cid = backdrop_render_cid_create($elements)) {
return FALSE;
}
// Cache implementations are allowed to modify the markup, to support
// replacing markup with edge-side include commands. The supporting cache
// backend will store the markup in some other key (like
// $data['#real-value']) and return an include command instead. When the
// ESI command is executed by the content accelerator, the real value can
// be retrieved and used.
$data['#markup'] = &$markup;
// Persist attached data associated with this element.
$attached = backdrop_render_collect_attached($elements, TRUE);
if ($attached) {
$data['#attached'] = $attached;
}
$bin = isset($elements['#cache']['bin']) ? $elements['#cache']['bin'] : 'cache';
$expire = isset($elements['#cache']['expire']) ? $elements['#cache']['expire'] : CACHE_PERMANENT;
cache($bin)->set($cid, $data, $expire);
return TRUE;
}