. * */ namespace SP; defined('APP_ROOT') || die(_('No es posible acceder directamente a este archivo')); /** * Clase base para guardar/obtener elementos de la caché */ class Cache { /** * Tiempo de expiración de la cache en segundos */ const EXPIRE_TIME = 300; /** * Obtener un parámetro de la configuración de sysPass desde la caché de la sesión * * @param string $param El parámetro a obtener * @return null */ public static function getSessionCacheConfigValue($param) { $config = self::getSessionCacheConfig(); if (isset($config) && isset($config[$param])) { return $config[$param]; } return null; } /** * Obtener la configuración de sysPass desde la caché de la sesión * * @return array|bool Los datos de la configuración */ public static function getSessionCacheConfig() { if (isset($_SESSION['cache']['config']) && is_array($_SESSION['cache']['config'])) { $isExpired = (time() - $_SESSION['cache']['config']['expires'] > 0); if (!$isExpired) { return $_SESSION['cache']['config']; } } self::setSessionCacheConfig(); return $_SESSION['cache']['config']; } /** * Guardar la cache de configuración en la sesion */ public static function setSessionCacheConfig() { $_SESSION['cache']['config'] = Config::getConfig(); $_SESSION['cache']['config']['expires'] = time() + self::EXPIRE_TIME; } }