Mercurial > hg > isophonics-drupal-site
annotate core/tests/Drupal/Tests/Component/FileCache/StaticFileCacheBackend.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 4c8ae668cc8c |
children |
rev | line source |
---|---|
Chris@0 | 1 <?php |
Chris@0 | 2 |
Chris@0 | 3 namespace Drupal\Tests\Component\FileCache; |
Chris@0 | 4 |
Chris@0 | 5 use Drupal\Component\FileCache\FileCacheBackendInterface; |
Chris@0 | 6 |
Chris@0 | 7 /** |
Chris@0 | 8 * Allows to cache data based on file modification dates in a static cache. |
Chris@0 | 9 */ |
Chris@0 | 10 class StaticFileCacheBackend implements FileCacheBackendInterface { |
Chris@0 | 11 |
Chris@0 | 12 /** |
Chris@0 | 13 * Internal static cache. |
Chris@0 | 14 * |
Chris@0 | 15 * @var array |
Chris@0 | 16 */ |
Chris@0 | 17 protected static $cache = []; |
Chris@0 | 18 |
Chris@0 | 19 /** |
Chris@0 | 20 * Bin used for storing the data in the static cache. |
Chris@0 | 21 * |
Chris@0 | 22 * @var string |
Chris@0 | 23 */ |
Chris@0 | 24 protected $bin; |
Chris@0 | 25 |
Chris@0 | 26 /** |
Chris@0 | 27 * Constructs a PHP Storage FileCache backend. |
Chris@0 | 28 * |
Chris@0 | 29 * @param array $configuration |
Chris@0 | 30 * (optional) Configuration used to configure this object. |
Chris@0 | 31 */ |
Chris@0 | 32 public function __construct($configuration) { |
Chris@0 | 33 $this->bin = isset($configuration['bin']) ? $configuration['bin'] : 'file_cache'; |
Chris@0 | 34 } |
Chris@0 | 35 |
Chris@0 | 36 /** |
Chris@0 | 37 * {@inheritdoc} |
Chris@0 | 38 */ |
Chris@0 | 39 public function fetch(array $cids) { |
Chris@0 | 40 $result = []; |
Chris@0 | 41 foreach ($cids as $cid) { |
Chris@0 | 42 if (isset(static::$cache[$this->bin][$cid])) { |
Chris@0 | 43 $result[$cid] = static::$cache[$this->bin][$cid]; |
Chris@0 | 44 } |
Chris@0 | 45 } |
Chris@0 | 46 |
Chris@0 | 47 return $result; |
Chris@0 | 48 } |
Chris@0 | 49 |
Chris@0 | 50 /** |
Chris@0 | 51 * {@inheritdoc} |
Chris@0 | 52 */ |
Chris@0 | 53 public function store($cid, $data) { |
Chris@0 | 54 static::$cache[$this->bin][$cid] = $data; |
Chris@0 | 55 } |
Chris@0 | 56 |
Chris@0 | 57 /** |
Chris@0 | 58 * {@inheritdoc} |
Chris@0 | 59 */ |
Chris@0 | 60 public function delete($cid) { |
Chris@0 | 61 unset(static::$cache[$this->bin][$cid]); |
Chris@0 | 62 } |
Chris@0 | 63 |
Chris@0 | 64 /** |
Chris@0 | 65 * Allows tests to reset the static cache to avoid side effects. |
Chris@0 | 66 */ |
Chris@0 | 67 public static function reset() { |
Chris@0 | 68 static::$cache = []; |
Chris@0 | 69 } |
Chris@0 | 70 |
Chris@0 | 71 } |