function ctools_object_cache_get
Get an object from the non-volatile ctools cache.
This function caches in memory as well, so that multiple calls to this will not result in multiple database reads.
Parameters
$obj: A 128 character or less string to define what kind of object is being stored; primarily this is used to prevent collisions.
$name: The name of the object being stored.
$skip_cache: Deprecated in favor of drupal_static* Skip the memory cache, meaning this must be read from the db again.
$sid: The session id, allowing someone to use Session API or their own solution; defaults to session_id().
Return value
The data that was cached.
7 calls to ctools_object_cache_get()
- CtoolsObjectCache::testObjectStorage in tests/
object_cache.test - ctools_ajax_sample_cache_get in ctools_ajax_sample/
ctools_ajax_sample.module - Get the current object from the cache, or default.
- ctools_cache_simple_cache_get in plugins/
cache/ simple.inc - ctools_export_ui::edit_cache_get in plugins/
export_ui/ ctools_export_ui.class.php - Retrieve the item currently being edited from the object cache.
- ctools_stylizer_get_settings_cache in includes/
stylizer.inc - Get the cached changes to a given task handler.
2 string references to 'ctools_object_cache_get'
- ctools_object_cache_clear in includes/
object-cache.inc - Remove an object from the non-volatile ctools cache.
- ctools_object_cache_clear_all in includes/
object-cache.inc - Remove an object from the non-volatile ctools cache for all session IDs.
File
-
includes/
object-cache.inc, line 33
Code
function ctools_object_cache_get($obj, $name, $skip_cache = FALSE, $sid = NULL) {
$cache =& drupal_static(__FUNCTION__, array());
$key = "{$obj}:{$name}";
if ($skip_cache) {
unset($cache[$key]);
}
if (!$sid) {
$sid = session_id();
}
if (!array_key_exists($key, $cache)) {
$data = db_query('SELECT * FROM {ctools_object_cache} WHERE sid = :session_id AND obj = :object AND name = :name', array(
':session_id' => $sid,
':object' => $obj,
':name' => md5($name),
))->fetchObject();
if ($data) {
$cache[$key] = unserialize($data->data);
}
}
return isset($cache[$key]) ? $cache[$key] : NULL;
}