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.

... See full list

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;
}