| <?php |
|
|
| namespace Kanboard\Decorator; |
|
|
| use Kanboard\Core\Cache\CacheInterface; |
| use Kanboard\Model\MetadataModel; |
|
|
| |
| |
| |
| |
| |
| |
| class MetadataCacheDecorator |
| { |
| |
| |
| |
| protected $cache; |
|
|
| |
| |
| |
| protected $metadataModel; |
|
|
| |
| |
| |
| protected $cachePrefix; |
|
|
| |
| |
| |
| protected $entityId; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| public function __construct(CacheInterface $cache, MetadataModel $metadataModel, $cachePrefix, $entityId) |
| { |
| $this->cache = $cache; |
| $this->metadataModel = $metadataModel; |
| $this->cachePrefix = $cachePrefix; |
| $this->entityId = $entityId; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function get($key, $default) |
| { |
| $metadata = $this->cache->get($this->getCacheKey()); |
|
|
| if ($metadata === null) { |
| $metadata = $this->metadataModel->getAll($this->entityId); |
| $this->cache->set($this->getCacheKey(), $metadata); |
| } |
|
|
| return isset($metadata[$key]) ? $metadata[$key] : $default; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function set($key, $value) |
| { |
| $this->metadataModel->save($this->entityId, array( |
| $key => $value, |
| )); |
|
|
| $metadata = $this->metadataModel->getAll($this->entityId); |
| $this->cache->set($this->getCacheKey(), $metadata); |
| } |
|
|
| |
| |
| |
| |
| |
| protected function getCacheKey() |
| { |
| return $this->cachePrefix.$this->entityId; |
| } |
| } |
|
|