我们如何在drupal 7中覆盖cache_set()

时间:2014-04-03 07:11:11

标签: caching drupal drupal-7 drupal-modules cache-control

我有一个drupal 7应用程序。我需要阻止在cache_form表中插入缓存。那么我们如何在drupal 7中覆盖cache_set()

1 个答案:

答案 0 :(得分:0)

您无法覆盖cache_set(),您可以使用cache_form缓存区的自定义缓存后端。如果您不想为cache_form缓存任何内容,则可以使用其方法无效的简单实现。

class DoNothingCache extends DrupalCacheInterface {

  /**
   * {@inheritdoc}
   */
  function get($cid) {
    return FALSE;
  }

  /**
   * {@inheritdoc}
   */
  function getMultiple(&$cids) {
    return array();
  }

  /**
   * {@inheritdoc}
   */
  function set($cid, $data, $expire = CACHE_PERMANENT) {}


  /**
   * {@inheritdoc}
   */
  function clear($cid = NULL, $wildcard = FALSE) {}

  /**
   * {@inheritdoc}
   */
  function isEmpty() {
    return TRUE;
  }
}

cache_class_cache_form配置变量定义实现DrupalCacheInterface接口的类,用于cache_form bin。您可以在settings.php文件中设置它。

$conf['cache_class_cache_form'] = 'DoNothingCache';