*/ /** * La classe Configuration permet de gérer la configuration de l'application */ class Minz_Configuration { const CONF_PATH_NAME = '/config.php'; /** * VERSION est la version actuelle de MINZ */ const VERSION = '1.3.1.freshrss'; // version spéciale FreshRSS /** * valeurs possibles pour l'"environment" * SILENT rend l'application muette (pas de log) * PRODUCTION est recommandée pour une appli en production * (log les erreurs critiques) * DEVELOPMENT log toutes les erreurs */ const SILENT = 0; const PRODUCTION = 1; const DEVELOPMENT = 2; /** * définition des variables de configuration * $salt une chaîne de caractères aléatoires (obligatoire) * $environment gère le niveau d'affichage pour log et erreurs * $use_url_rewriting indique si on utilise l'url_rewriting * $base_url le chemin de base pour accéder à l'application * $title le nom de l'application * $language la langue par défaut de l'application * $cacheEnabled permet de savoir si le cache doit être activé * $delayCache la limite de cache * $db paramètres pour la base de données (tableau) * - host le serveur de la base * - user nom d'utilisateur * - password mot de passe de l'utilisateur * - base le nom de la base de données */ private static $salt = ''; private static $environment = Minz_Configuration::PRODUCTION; private static $base_url = ''; private static $use_url_rewriting = false; private static $title = ''; private static $language = 'en'; private static $cache_enabled = false; private static $delay_cache = 3600; private static $default_user = ''; private static $allow_anonymous = false; private static $auth_type = 'none'; private static $db = array ( 'type' => 'mysql', 'host' => '', 'user' => '', 'password' => '', 'base' => '', 'prefix' => '', ); /* * Getteurs */ public static function salt () { return self::$salt; } public static function environment () { return self::$environment; } public static function baseUrl () { return self::$base_url; } public static function useUrlRewriting () { return self::$use_url_rewriting; } public static function title () { return self::$title; } public static function language () { return self::$language; } public static function cacheEnabled () { return self::$cache_enabled; } public static function delayCache () { return self::$delay_cache; } public static function dataBase () { return self::$db; } public static function defaultUser () { return self::$default_user; } public static function isAdmin($currentUser) { return $currentUser === self::$default_user; } public static function allowAnonymous() { return self::$allow_anonymous; } public static function authType() { return self::$auth_type; } public static function needsLogin() { return self::$auth_type !== 'none'; } public static function canLogIn() { return self::$auth_type === 'form' || self::$auth_type === 'persona'; } public static function _allowAnonymous($allow = false) { self::$allow_anonymous = (bool)$allow; } public static function _authType($value) { $value = strtolower($value); switch ($value) { case 'form': case 'http_auth': case 'persona': case 'none': self::$auth_type = $value; break; } } /** * Initialise les variables de configuration * @exception Minz_FileNotExistException si le CONF_PATH_NAME n'existe pas * @exception Minz_BadConfigurationException si CONF_PATH_NAME mal formaté */ public static function init () { try { self::parseFile (); self::setReporting (); } catch (Minz_FileNotExistException $e) { throw $e; } catch (Minz_BadConfigurationException $e) { throw $e; } } public static function writeFile() { $ini_array = array( 'general' => array( 'environment' => self::$environment, 'use_url_rewriting' => self::$use_url_rewriting, 'salt' => self::$salt, 'base_url' => self::$base_url, 'title' => self::$title, 'default_user' => self::$default_user, 'allow_anonymous' => self::$allow_anonymous, 'auth_type' => self::$auth_type, ), 'db' => self::$db, ); @rename(DATA_PATH . self::CONF_PATH_NAME, DATA_PATH . self::CONF_PATH_NAME . '.bak.php'); $result = file_put_contents(DATA_PATH . self::CONF_PATH_NAME, "