lifetime = (int)$defaultLifetime; $this->driver = new FilesystemCache(Grav::instance()['locator']->findResource('cache://login/' . $namespace, true, true)); } /** * Fetches a value from the cache. * * @param string $key The unique key of this item in the cache. * @param mixed $default Default value to return if the key does not exist. * * @return mixed The value of the item from the cache, or $default in case of cache miss. */ public function get($key, $default = null) { $value = $this->driver->fetch($key); // Doctrine cache does not differentiate between no result and cached 'false'. Make sure that we do. return $value !== false || $this->driver->contains($key) ? $value : $default; } /** * Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time. * * @param string $key The key of the item to store. * @param mixed $value The value of the item to store, must be serializable. * @param null|int $ttl Optional. The TTL value of this item. * * @return bool True on success and false on failure. */ public function set($key, $value, $ttl = null) { $ttl = $ttl !== null ? (int)$ttl : $this->lifetime; return $this->driver->save($key, $value, $ttl); } /** * Determines whether an item is present in the cache. * * @param string $key The cache item key. * * @return bool */ public function has($key) { return $this->driver->contains($key); } /** * Delete an item from the cache by its unique key. * * @param string $key The unique cache key of the item to delete. * * @return bool True if the item was successfully removed. False if there was an error. */ public function delete($key) { return $this->driver->delete($key); } /** * Wipes clean the entire cache's keys. * * @return bool True on success and false on failure. */ public function clear() { return $this->driver->flushAll(); } }