class CacheBackendWrapper in Devel 8
Same name and namespace in other branches
- 8.3 webprofiler/src/Cache/CacheBackendWrapper.php \Drupal\webprofiler\Cache\CacheBackendWrapper
- 8.2 webprofiler/src/Cache/CacheBackendWrapper.php \Drupal\webprofiler\Cache\CacheBackendWrapper
- 4.x webprofiler/src/Cache/CacheBackendWrapper.php \Drupal\webprofiler\Cache\CacheBackendWrapper
Wraps an existing cache backend to track calls to the cache backend.
Hierarchy
- class \Drupal\webprofiler\Cache\CacheBackendWrapper implements CacheBackendInterface, CacheTagsInvalidatorInterface
Expanded class hierarchy of CacheBackendWrapper
1 file declares its use of CacheBackendWrapper
- CacheDataCollectorTest.php in webprofiler/tests/ src/ Unit/ DataCollector/ CacheDataCollectorTest.php 
File
- webprofiler/src/ Cache/ CacheBackendWrapper.php, line 13 
Namespace
Drupal\webprofiler\CacheView source
class CacheBackendWrapper implements CacheBackendInterface, CacheTagsInvalidatorInterface {
  /**
   * The data collector to register the calls.
   *
   * @var \Drupal\webprofiler\DataCollector\CacheDataCollector
   */
  protected $cacheDataCollector;
  /**
   * The wrapped cache backend.
   *
   * @var \Drupal\Core\Cache\CacheBackendInterface
   */
  protected $cacheBackend;
  /**
   * The name of the wrapped cache bin.
   *
   * @var string
   */
  protected $bin;
  /**
   * Constructs a new CacheBackendWrapper.
   *
   * @param \Drupal\webprofiler\DataCollector\CacheDataCollector $cacheDataCollector
   *   The cache data collector to inform about cache get calls.
   * @param \Drupal\Core\Cache\CacheBackendInterface $cacheBackend
   *   The wrapped cache backend.
   * @param string $bin
   *   The name of the wrapped cache bin.
   */
  public function __construct(CacheDataCollector $cacheDataCollector, CacheBackendInterface $cacheBackend, $bin) {
    $this->cacheDataCollector = $cacheDataCollector;
    $this->cacheBackend = $cacheBackend;
    $this->bin = $bin;
  }
  /**
   * {@inheritdoc}
   */
  public function get($cid, $allow_invalid = FALSE) {
    $cache = $this->cacheBackend
      ->get($cid, $allow_invalid);
    if ($cache) {
      $cacheCopy = new \stdClass();
      $cacheCopy->cid = $cache->cid;
      $cacheCopy->expire = $cache->expire;
      $cacheCopy->tags = $cache->tags;
      $this->cacheDataCollector
        ->registerCacheHit($this->bin, $cacheCopy);
    }
    else {
      $this->cacheDataCollector
        ->registerCacheMiss($this->bin, $cid);
    }
    return $cache;
  }
  /**
   * {@inheritdoc}
   */
  public function getMultiple(&$cids, $allow_invalid = FALSE) {
    $cidsCopy = $cids;
    $cache = $this->cacheBackend
      ->getMultiple($cids, $allow_invalid);
    foreach ($cidsCopy as $cid) {
      if (in_array($cid, $cids)) {
        $this->cacheDataCollector
          ->registerCacheMiss($this->bin, $cid);
      }
      else {
        $cacheCopy = new \stdClass();
        $cacheCopy->cid = $cache[$cid]->cid;
        $cacheCopy->expire = $cache[$cid]->expire;
        $cacheCopy->tags = $cache[$cid]->tags;
        $this->cacheDataCollector
          ->registerCacheHit($this->bin, $cacheCopy);
      }
    }
    return $cache;
  }
  /**
   * {@inheritdoc}
   */
  public function set($cid, $data, $expire = Cache::PERMANENT, array $tags = []) {
    return $this->cacheBackend
      ->set($cid, $data, $expire, $tags);
  }
  /**
   * {@inheritdoc}
   */
  public function setMultiple(array $items) {
    return $this->cacheBackend
      ->setMultiple($items);
  }
  /**
   * {@inheritdoc}
   */
  public function delete($cid) {
    return $this->cacheBackend
      ->delete($cid);
  }
  /**
   * {@inheritdoc}
   */
  public function deleteMultiple(array $cids) {
    return $this->cacheBackend
      ->deleteMultiple($cids);
  }
  /**
   * {@inheritdoc}
   */
  public function deleteAll() {
    return $this->cacheBackend
      ->deleteAll();
  }
  /**
   * {@inheritdoc}
   */
  public function invalidate($cid) {
    return $this->cacheBackend
      ->invalidate($cid);
  }
  /**
   * {@inheritdoc}
   */
  public function invalidateMultiple(array $cids) {
    return $this->cacheBackend
      ->invalidateMultiple($cids);
  }
  /**
   * {@inheritdoc}
   */
  public function invalidateTags(array $tags) {
    if ($this->cacheBackend instanceof CacheTagsInvalidatorInterface) {
      $this->cacheBackend
        ->invalidateTags($tags);
    }
  }
  /**
   * {@inheritdoc}
   */
  public function invalidateAll() {
    return $this->cacheBackend
      ->invalidateAll();
  }
  /**
   * {@inheritdoc}
   */
  public function garbageCollection() {
    return $this->cacheBackend
      ->garbageCollection();
  }
  /**
   * {@inheritdoc}
   */
  public function removeBin() {
    return $this->cacheBackend
      ->removeBin();
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| CacheBackendInterface:: | constant | Indicates that the item should never be removed unless explicitly deleted. | ||
| CacheBackendWrapper:: | protected | property | The name of the wrapped cache bin. | |
| CacheBackendWrapper:: | protected | property | The wrapped cache backend. | |
| CacheBackendWrapper:: | protected | property | The data collector to register the calls. | |
| CacheBackendWrapper:: | public | function | Deletes an item from the cache. Overrides CacheBackendInterface:: | |
| CacheBackendWrapper:: | public | function | Deletes all cache items in a bin. Overrides CacheBackendInterface:: | |
| CacheBackendWrapper:: | public | function | Deletes multiple items from the cache. Overrides CacheBackendInterface:: | |
| CacheBackendWrapper:: | public | function | Performs garbage collection on a cache bin. Overrides CacheBackendInterface:: | |
| CacheBackendWrapper:: | public | function | Returns data from the persistent cache. Overrides CacheBackendInterface:: | |
| CacheBackendWrapper:: | public | function | Returns data from the persistent cache when given an array of cache IDs. Overrides CacheBackendInterface:: | |
| CacheBackendWrapper:: | public | function | Marks a cache item as invalid. Overrides CacheBackendInterface:: | |
| CacheBackendWrapper:: | public | function | Marks all cache items as invalid. Overrides CacheBackendInterface:: | |
| CacheBackendWrapper:: | public | function | Marks cache items as invalid. Overrides CacheBackendInterface:: | |
| CacheBackendWrapper:: | public | function | Marks cache items with any of the specified tags as invalid. Overrides CacheTagsInvalidatorInterface:: | |
| CacheBackendWrapper:: | public | function | Remove a cache bin. Overrides CacheBackendInterface:: | |
| CacheBackendWrapper:: | public | function | Stores data in the persistent cache. Overrides CacheBackendInterface:: | |
| CacheBackendWrapper:: | public | function | Store multiple items in the persistent cache. Overrides CacheBackendInterface:: | |
| CacheBackendWrapper:: | public | function | Constructs a new CacheBackendWrapper. | 
