Rev 6866 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?phpdeclare(strict_types=1);namespace LeadersLinked\Cache;class CacheImpl implements CacheInterface{private $memcached;/**** @var CacheInterface*/private static $_instance;/**** @var int*/private $ttl;/**** @var string*/private $host;/**** @var int*/private $port;/**** @param Array $config* @return CacheImpl*/public static function getInstance($config){if(self::$_instance == null) {self::$_instance = new CacheImpl($config);}return self::$_instance;}/**** @param Array $config*/private function __construct($config){$this->ttl = intval($config['leaderslinked.memcache.ttl'], 10);$this->host = strval($config['leaderslinked.memcache.host']);$this->port = intval($config['leaderslinked.memcache.port'], 10);if(class_exists(\Memcached::class)) {$this->memcached = new \Memcached();$this->memcached->addServer($this->host, $this->port);} else if(class_exists(\Memcache::class)) {$this->memcache = new \Memcache();$this->memcache->addserver($this->host, $this->port);}}/**** @param string $key* @param mixed $value*/public function add($key, $value){$this->memcached->add($key, $value, $this->ttl);}/**** @param string $key* @return boolean*/public function touch($key){return $this->memcached->touch($key, $this->ttl);}/**** @param string $key* @return boolean*/public function delete($key){return $this->memcached->delete($key);}/**** @param string $key* @return mixed*/public function get($key){$value = $this->memcached->get($key);if($value === \Memcached::RES_NOTFOUND) {return false;} else {return $value;}}}