. namespace core_cache; /** * A wrapper class used to handle ttl when the cache store doesn't natively support it. * * This class is exactly why you should use event driving invalidation of cache data rather than relying on ttl. * * @package core_cache * @category cache * @copyright 2012 Sam Hemelryk * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class ttl_wrapper { /** * The data being stored. * @var mixed */ public $data; /** * When the cache data expires as a timestamp. * @var int */ public $expires; /** * Constructs a ttl cache wrapper. * * @param mixed $data * @param int $ttl The time to live in seconds. */ public function __construct($data, $ttl) { $this->data = $data; $this->expires = cache::now() + (int)$ttl; } /** * Returns true if the data has expired. * @return int */ public function has_expired() { return ($this->expires < cache::now()); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(ttl_wrapper::class, \cache_ttl_wrapper::class);