Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 6 |
CRAP | |
0.00% |
0 / 28 |
| MemoryCounterBackend | |
0.00% |
0 / 1 |
|
0.00% |
0 / 6 |
156 | |
0.00% |
0 / 28 |
| get | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| set | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| delete | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| increaseCounter | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 7 |
|||
| getCounter | |
0.00% |
0 / 1 |
42 | |
0.00% |
0 / 10 |
|||
| resetCounter | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\Cache\MemoryCounterBackend. | |
| */ | |
| namespace Drupal\Core\Cache; | |
| /** | |
| * Defines a memory cache implementation that counts set and get calls. | |
| * | |
| * This can be used to mock a cache backend where one needs to know how | |
| * many times a cache entry was set or requested. | |
| * | |
| * @todo On the longrun this backend should be replaced by phpunit mock objects. | |
| * | |
| */ | |
| class MemoryCounterBackend extends MemoryBackend { | |
| /** | |
| * Stores a list of cache cid calls keyed by function name. | |
| * | |
| * @var array | |
| */ | |
| protected $counter = array(); | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function get($cid, $allow_invalid = FALSE) { | |
| $this->increaseCounter(__FUNCTION__, $cid); | |
| return parent::get($cid, $allow_invalid); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function set($cid, $data, $expire = Cache::PERMANENT, array $tags = array()) { | |
| $this->increaseCounter(__FUNCTION__, $cid); | |
| parent::set($cid, $data, $expire, $tags); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function delete($cid) { | |
| $this->increaseCounter(__FUNCTION__, $cid); | |
| parent::delete($cid); | |
| } | |
| /** | |
| * Increase the counter for a function with a certain cid. | |
| * | |
| * @param string $function | |
| * The called function. | |
| * | |
| * @param string $cid | |
| * The cache ID of the cache entry to increase the counter. | |
| */ | |
| protected function increaseCounter($function, $cid) { | |
| if (!isset($this->counter[$function][$cid])) { | |
| $this->counter[$function][$cid] = 1; | |
| } | |
| else { | |
| $this->counter[$function][$cid]++; | |
| } | |
| } | |
| /** | |
| * Returns the call counter for the get, set and delete methods. | |
| * | |
| * @param string $method | |
| * (optional) The name of the method to return the call counter for. | |
| * @param string $cid | |
| * (optional) The name of the cache id to return the call counter for. | |
| * | |
| * @return int|array | |
| * An integer if both method and cid is given, an array otherwise. | |
| */ | |
| public function getCounter($method = NULL, $cid = NULL) { | |
| if ($method && $cid) { | |
| return isset($this->counter[$method][$cid]) ? $this->counter[$method][$cid] : 0; | |
| } | |
| elseif ($method) { | |
| return isset($this->counter[$method]) ? $this->counter[$method] : array(); | |
| } | |
| else { | |
| return $this->counter; | |
| } | |
| } | |
| /** | |
| * Resets the call counter. | |
| */ | |
| public function resetCounter() { | |
| $this->counter = array(); | |
| } | |
| } |