D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
local
/
psa
/
admin
/
plib
/
modules
/
rest-api
/
vendor
/
jms
/
metadata
/
src
/
Cache
/
Filename :
DoctrineCacheAdapter.php
back
Copy
<?php declare (strict_types=1); namespace PleskRestApi\Metadata\Cache; use PleskRestApi\Doctrine\Common\Cache\Cache; use PleskRestApi\Metadata\ClassMetadata; /** * @author Henrik Bjornskov <henrik@bjrnskov.dk> */ class DoctrineCacheAdapter implements CacheInterface, ClearableCacheInterface { /** * @var string */ private $prefix; /** * @var Cache */ private $cache; public function __construct(string $prefix, Cache $cache) { $this->prefix = $prefix; $this->cache = $cache; } public function load(string $class) : ?ClassMetadata { $cache = $this->cache->fetch($this->prefix . $class); return \false === $cache ? null : $cache; } public function put(ClassMetadata $metadata) : void { $this->cache->save($this->prefix . $metadata->name, $metadata); } public function evict(string $class) : void { $this->cache->delete($this->prefix . $class); } public function clear() : bool { if (\method_exists($this->cache, 'deleteAll')) { // or $this->cache instanceof ClearableCache return \call_user_func([$this->cache, 'deleteAll']); } return \false; } }