1*d5ef99ddSAndreas Gohr<?php 2*d5ef99ddSAndreas Gohr 3*d5ef99ddSAndreas Gohr/** 4*d5ef99ddSAndreas Gohr * Device Detector - The Universal Device Detection library for parsing User Agents 5*d5ef99ddSAndreas Gohr * 6*d5ef99ddSAndreas Gohr * @link https://matomo.org 7*d5ef99ddSAndreas Gohr * 8*d5ef99ddSAndreas Gohr * @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later 9*d5ef99ddSAndreas Gohr */ 10*d5ef99ddSAndreas Gohr 11*d5ef99ddSAndreas Gohrdeclare(strict_types=1); 12*d5ef99ddSAndreas Gohr 13*d5ef99ddSAndreas Gohrnamespace DeviceDetector\Cache; 14*d5ef99ddSAndreas Gohr 15*d5ef99ddSAndreas Gohruse Psr\SimpleCache\CacheInterface as PsrCacheInterface; 16*d5ef99ddSAndreas Gohr 17*d5ef99ddSAndreas Gohrclass PSR16Bridge implements CacheInterface 18*d5ef99ddSAndreas Gohr{ 19*d5ef99ddSAndreas Gohr /** 20*d5ef99ddSAndreas Gohr * @var PsrCacheInterface 21*d5ef99ddSAndreas Gohr */ 22*d5ef99ddSAndreas Gohr private $cache; 23*d5ef99ddSAndreas Gohr 24*d5ef99ddSAndreas Gohr /** 25*d5ef99ddSAndreas Gohr * PSR16Bridge constructor. 26*d5ef99ddSAndreas Gohr * @param PsrCacheInterface $cache 27*d5ef99ddSAndreas Gohr */ 28*d5ef99ddSAndreas Gohr public function __construct(PsrCacheInterface $cache) 29*d5ef99ddSAndreas Gohr { 30*d5ef99ddSAndreas Gohr $this->cache = $cache; 31*d5ef99ddSAndreas Gohr } 32*d5ef99ddSAndreas Gohr 33*d5ef99ddSAndreas Gohr /** 34*d5ef99ddSAndreas Gohr * @inheritDoc 35*d5ef99ddSAndreas Gohr */ 36*d5ef99ddSAndreas Gohr public function fetch(string $id) 37*d5ef99ddSAndreas Gohr { 38*d5ef99ddSAndreas Gohr return $this->cache->get($id, false); 39*d5ef99ddSAndreas Gohr } 40*d5ef99ddSAndreas Gohr 41*d5ef99ddSAndreas Gohr /** 42*d5ef99ddSAndreas Gohr * @inheritDoc 43*d5ef99ddSAndreas Gohr */ 44*d5ef99ddSAndreas Gohr public function contains(string $id): bool 45*d5ef99ddSAndreas Gohr { 46*d5ef99ddSAndreas Gohr return $this->cache->has($id); 47*d5ef99ddSAndreas Gohr } 48*d5ef99ddSAndreas Gohr 49*d5ef99ddSAndreas Gohr /** 50*d5ef99ddSAndreas Gohr * @inheritDoc 51*d5ef99ddSAndreas Gohr */ 52*d5ef99ddSAndreas Gohr public function save(string $id, $data, int $lifeTime = 0): bool 53*d5ef99ddSAndreas Gohr { 54*d5ef99ddSAndreas Gohr return $this->cache->set($id, $data, \func_num_args() < 3 ? null : $lifeTime); 55*d5ef99ddSAndreas Gohr } 56*d5ef99ddSAndreas Gohr 57*d5ef99ddSAndreas Gohr /** 58*d5ef99ddSAndreas Gohr * @inheritDoc 59*d5ef99ddSAndreas Gohr */ 60*d5ef99ddSAndreas Gohr public function delete(string $id): bool 61*d5ef99ddSAndreas Gohr { 62*d5ef99ddSAndreas Gohr return $this->cache->delete($id); 63*d5ef99ddSAndreas Gohr } 64*d5ef99ddSAndreas Gohr 65*d5ef99ddSAndreas Gohr /** 66*d5ef99ddSAndreas Gohr * @inheritDoc 67*d5ef99ddSAndreas Gohr */ 68*d5ef99ddSAndreas Gohr public function flushAll(): bool 69*d5ef99ddSAndreas Gohr { 70*d5ef99ddSAndreas Gohr return $this->cache->clear(); 71*d5ef99ddSAndreas Gohr } 72*d5ef99ddSAndreas Gohr} 73