verbosite = $verbosite; } /** * Affiche un message d'erreur formaté. * Si le paramétre de verbosité (-v) vaut 1 ou plus, le message est écrit dans le fichier de log et afficher dans la console. * * @param string le message d'erreur avec des %s. * @param array le tableau des paramêtres à insérer dans le message d'erreur. * @return void. */ public function traiterErreur($message, $tab_arguments = array()) { $this->traiterMessage($message, $tab_arguments, self::MSG_ERREUR); } /** * Affiche un message d'avertissement formaté. * Si le paramétre de verbosité (-v) vaut 1, le message est écrit dans le fichier de log. * Si le paramétre de verbosité (-v) vaut 2 ou plus, le message est écrit dans le fichier de log et afficher dans la console. * * @param string le message d'erreur avec des %s. * @param array le tableau des paramêtres à insérer dans le message d'erreur. * @return void. */ public function traiterAvertissement($message, $tab_arguments = array()) { $this->traiterMessage($message, $tab_arguments, self::MSG_AVERTISSEMENT); } /** * Retourne un message d'information formaté. * Si le paramétre de verbosité (-v) vaut 1 ou 2 , le message est écrit dans le fichier de log. * Si le paramétre de verbosité (-v) vaut 3 ou plus, le message est écrit dans le fichier de log et afficher dans la console. * * @param string le message d'information avec des %s. * @param array le tableau des paramêtres à insérer dans le message d'erreur. * @return void. */ public function traiterInfo($message, $tab_arguments = array()) { $this->traiterMessage($message, $tab_arguments, self::MSG_INFO); } /** * Retourne un message formaté en le stockant dans un fichier de log si nécessaire. * * @param string le message d'erreur avec des %s. * @param array le tableau des paramêtres à insérer dans le message d'erreur. * @param int le niveau de verbosité à dépasser pour afficher les messages. * @return void. */ private function traiterMessage($message, $tab_arguments, $niveau = self::MSG_LOG) { $log = $this->formaterMsg($message, $tab_arguments, $niveau); if ($this->verbosite > ($niveau - 1)) { echo $log; if (Config::get('log_script')) { // TODO : lancer le log } } } /** * Retourne un message d'information formaté. * * @param string le message d'information avec des %s. * @param array le tableau des paramêtres à insérer dans le message d'erreur. * @return string le message d'erreur formaté. */ public function formaterMsg($message, $tab_arguments = array(), $niveau = null) { $texte = vsprintf($message, $tab_arguments); $prefixe = date('Y-m-j_H:i:s', time()); $prefixe .= is_null($niveau) ? ' : ' : ' - '.self::getMsgNiveauTxt($niveau).' : '; $log = $prefixe.$texte."\n"; return $log; } private static function getMsgNiveauTxt($niveau) { return self::$msg_niveaux_txt[$niveau]; } /** * Utiliser cette méthode dans une boucle pour afficher un message suivi du nombre de tour de boucle effectué. * Vous devrez vous même gérer le retour à la ligne à la sortie de la boucle. * * @param string le message d'information. * @param int le nombre de départ à afficher. * @return void le message est affiché dans la console. */ public static function afficherAvancement($message, $depart = 0) { static $avancement = array(); if (! array_key_exists($message, $avancement)) { $avancement[$message] = $depart; echo "$message : "; $actuel =& $avancement[$message]; echo $actuel++; } else { $actuel =& $avancement[$message]; // Cas du passage de 99 (= 2 caractères) à 100 (= 3 caractères) $passage = 0; if (strlen((string) ($actuel - 1)) < strlen((string) ($actuel))) { $passage = 1; } echo str_repeat(chr(8), (strlen((string) $actuel) - $passage)); echo $actuel++; } } } ?>