Rev 425 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phpclass Messages {/** Niveau de message de type LOG */const MSG_LOG = 0;/** Niveau de message de type ERREUR */const MSG_ERREUR = 1;/** Niveau de message de type AVERTISSEMENT */const MSG_AVERTISSEMENT = 2;/** Niveau de message de type INFORMATION */const MSG_INFO = 3;/** Inititulé des différents types de message. */private static $msg_niveaux_txt = array('LOG', 'ERREUR','AVERTISSEMENT', 'INFO');private $verbosite = '';public function __construct($verbosite = 0) {$this->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++;}}}