/** * Enregistre un message dans un fichier de log spécifique * Message non loggué si * - environment = SILENT * - level = WARNING et environment = PRODUCTION * - level = NOTICE et environment = PRODUCTION * @param $information message d'erreur / information à enregistrer * @param $level niveau d'erreur * @param $file_name fichier de log, par défaut LOG_PATH/application.log */ public static function record($information, $level, $file_name = null) { $env = Minz_Configuration::environment(); if (!($env === Minz_Configuration::SILENT || $env === Minz_Configuration::PRODUCTION && $level >= Minz_Log::NOTICE)) { if ($file_name === null) { $file_name = LOG_PATH . '/' . Minz_Session::param('currentUser', '_') . '.log'; } switch ($level) { case Minz_Log::ERROR: $level_label = 'error'; break; case Minz_Log::WARNING: $level_label = 'warning'; break; case Minz_Log::NOTICE: $level_label = 'notice'; break; case Minz_Log::DEBUG: $level_label = 'debug'; break; default: $level_label = 'unknown'; } $log = '[' . date('r') . ']' . ' [' . $level_label . ']' . ' --- ' . $information . "\n"; if (file_put_contents($file_name, $log, FILE_APPEND | LOCK_EX) === false) { throw new Minz_PermissionDeniedException($file_name, Minz_Exception::ERROR); } } }
/** * Permet de retourner les logs de façon à n'avoir que * ceux que l'on veut réellement * @param $logs les logs rangés par catégories (error, warning, notice) * @return la liste des logs, sans catégorie, * > en fonction de l'environment */ private static function processLogs($logs) { $env = Minz_Configuration::environment(); $logs_ok = array(); $error = array(); $warning = array(); $notice = array(); if (isset($logs['error'])) { $error = $logs['error']; } if (isset($logs['warning'])) { $warning = $logs['warning']; } if (isset($logs['notice'])) { $notice = $logs['notice']; } if ($env == Minz_Configuration::PRODUCTION) { $logs_ok = $error; } if ($env == Minz_Configuration::DEVELOPMENT) { $logs_ok = array_merge($error, $warning, $notice); } return $logs_ok; }
/** * Parse un fichier de configuration * @exception Minz_PermissionDeniedException si le CONF_PATH_NAME n'est pas accessible * @exception Minz_BadConfigurationException si CONF_PATH_NAME mal formaté */ private static function parseFile() { $ini_array = (include DATA_PATH . self::CONF_PATH_NAME); if (!is_array($ini_array)) { throw new Minz_PermissionDeniedException(DATA_PATH . self::CONF_PATH_NAME, Minz_Exception::ERROR); } // [general] est obligatoire if (!isset($ini_array['general'])) { throw new Minz_BadConfigurationException('[general]', Minz_Exception::ERROR); } $general = $ini_array['general']; // salt est obligatoire if (!isset($general['salt'])) { if (isset($general['sel_application'])) { //v0.6 $general['salt'] = $general['sel_application']; } else { throw new Minz_BadConfigurationException('salt', Minz_Exception::ERROR); } } self::$salt = $general['salt']; if (isset($general['environment'])) { switch ($general['environment']) { case 'silent': self::$environment = Minz_Configuration::SILENT; break; case 'development': self::$environment = Minz_Configuration::DEVELOPMENT; break; case 'production': self::$environment = Minz_Configuration::PRODUCTION; break; default: if ($general['environment'] >= 0 && $general['environment'] <= 2) { // fallback 0.7-beta self::$environment = $general['environment']; } else { throw new Minz_BadConfigurationException('environment', Minz_Exception::ERROR); } } } if (isset($general['base_url'])) { self::$base_url = $general['base_url']; } if (isset($general['use_url_rewriting'])) { self::$use_url_rewriting = $general['use_url_rewriting']; } if (isset($general['title'])) { self::$title = $general['title']; } if (isset($general['language'])) { self::$language = $general['language']; } if (isset($general['cache_enabled'])) { self::$cache_enabled = $general['cache_enabled']; if (CACHE_PATH === false && self::$cache_enabled) { throw new FileNotExistException('CACHE_PATH', Minz_Exception::ERROR); } } if (isset($general['delay_cache'])) { self::$delay_cache = inval($general['delay_cache']); } if (isset($general['default_user'])) { self::$default_user = $general['default_user']; } if (isset($general['auth_type'])) { self::_authType($general['auth_type']); } if (isset($general['allow_anonymous'])) { self::$allow_anonymous = (bool) $general['allow_anonymous'] && $general['allow_anonymous'] !== 'no'; } if (isset($general['allow_anonymous_refresh'])) { self::$allow_anonymous_refresh = (bool) $general['allow_anonymous_refresh'] && $general['allow_anonymous_refresh'] !== 'no'; } // Base de données if (isset($ini_array['db'])) { $db = $ini_array['db']; if (empty($db['host'])) { throw new Minz_BadConfigurationException('host', Minz_Exception::ERROR); } if (empty($db['user'])) { throw new Minz_BadConfigurationException('user', Minz_Exception::ERROR); } if (!isset($db['password'])) { throw new Minz_BadConfigurationException('password', Minz_Exception::ERROR); } if (empty($db['base'])) { throw new Minz_BadConfigurationException('base', Minz_Exception::ERROR); } if (!empty($db['type'])) { self::$db['type'] = $db['type']; } self::$db['host'] = $db['host']; self::$db['user'] = $db['user']; self::$db['password'] = $db['password']; self::$db['base'] = $db['base']; if (isset($db['prefix'])) { self::$db['prefix'] = $db['prefix']; } } }