. * */ namespace SP; defined('APP_ROOT') || die(_('No es posible acceder directamente a este archivo')); /** * Esta clase es responsable de leer y escribir la configuración del archivo config.php */ class Config implements ConfigInterface { /** * @var array */ protected static $_cache; /** * @var bool */ protected static $_init; /** * Obtiene un valor de configuración desde el archivo * * @param string $param clave * @param string $default = null valor por defecto * @return string el valor o $default */ public static function getValue($param, $default = null) { $params = Cache::getSessionCacheConfigValue($param); return (!is_null($params)) ? $params : $default; } /** * Lista todas las claves de configuración guardadas * * @param bool $full obtener todas las claves y sus valores * @return array con nombres de claves */ public static function getKeys($full = false) { self::readConfig(); if ($full) { return self::$_cache; } return array_keys(self::$_cache); } /** * Carga el archivo de configuración y lo guarda en caché. * * @return bool */ public static function readConfig() { if (self::$_init) { return true; } if (!file_exists(CONFIG_FILE)) { return false; } // Include the file, save the data from $CONFIG include_once CONFIG_FILE; if (isset($CONFIG) && is_array($CONFIG)) { self::$_cache = $CONFIG; } // We cached everything self::$_init = true; return true; } /** * Elimina una clave de la configuración. * Esta función elimina una clave de config.php. Si no tiene permiso * de escritura en config.php, devolverá false. * * @param string $param clave * @return bool */ public static function deleteParam($param) { self::readConfig(); if (isset(self::$_cache[$param])) { // Eliminar la clave de la caché unset(self::$_cache[$param]); // Guardar los cambios en la configuración self::writeConfig(); } return true; } /** * Escribe en archivo de configuración. * * @return bool * @throws SPException */ public static function writeConfig() { // Ordenar las claves de la configuración ksort(self::$_cache); $content = "