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. |