com.neolao.Debug

Class de debug qui enregistre des messages de 3 types différents :

Il est aussi possible de donner un niveau d'importance aux messages.

Exemples

$localDebug = new Debug("truc");             // Initialisation de la class
$localDebug->localError("pif paf pouf !");   // Enregistre un debug error instance
$localDebug->localInfo("pigeoonnnn !!!");    // Enregistre un debug info instance
$localDebug->localAction("zip boum !");      // Enregistre un debug action instance
 
Debug::error("attention tout va péter !!!"); // Enregistre un debug error général
Debug::info("tiens, une mouche ...");        // Enregistre un debug info général 
Debug::action("Paf le chien !");             // Enregistre un debug action général
 
Debug::showAll();                            // Affichage de l'historique de debug (sortie html, dans un <ul>)

Méthodes

Visibilité Nom Param 1 Param 2 Param 3 Description
public localError string $message int $level Enregistre $message comme une erreur de niveau $level pour l'instance
public localInfo string $message int $level Enregistre $message comme une information de niveau $level pour l'instance
public localAction string $message int $level Enregistre $message comme une action de niveau $level pour l'instance
static public error string $message int $level Enregistre $message comme une erreur générale de niveau $level
static public info string $message int $level Enregistre $message comme une information générale de niveau $level
static public action string $message int $level Enregistre $message comme une action générale de niveau $level
static public show array $types int $level bool $instance Affichage du debug. Par défaut, ça affiche les 3 types de message de niveau 3, sans les instances.

Change log

  • [14/03/2005] Version 1.0

Création

Todos

  • Pouvoir désactiver l'enregistrement des messages

Source

/**
 * Class de debug
 * @package			com.neolao
 * @author			neolao <neo@neolao.com>
 * @version			1.0 (14/03/2005)
 * @link			http://resources.neolao.com/php/classes/debug
 */
class Debug {
	// ----------------------------- CONSTANTES --------------------------------
 
	// ----------------------------- VARIABLES ---------------------------------
	/**
	 * L'historique des messages de debug
	 * @var array
	 */
	private static $_history;
	/**
	 * L'historique des messages de l'instance
	 * @var array
	 */
	private $_instHistory;
	/**
	 * Nom de l'instance
	 * @var string
	 */
	private $_instName;
 
	/*===================== CONSTRUCTEUR & DESCTRUCTEUR ======================*/
	/*========================================================================*/
	/**
	 * Initialisation de la class
	 * @param string $name L'identifiant de l'instance Debug
	 */
	public function Debug($name){
		$this->_instName = $name;
	}
	/*=============== FIN = CONSTRUCTEUR & DESCTRUCTEUR = FIN ================*/
	/*========================================================================*/
 
	/*========================== METHODES PUBLIQUES ==========================*/
	/*========================================================================*/
	/**
	 * Enregistre un debug error instance
	 * @param string $message Le message à enregistrer
	 * @param int $level Le niveau du message
	 */
	public function localError($message, $level=1){
		$o = array("type"=>"error", 
				   "level"=>$level, 
				   "instance"=>true, 
				   "message"=>$message);
		array_push($this->_insthistory, $o);
		array_push(self::_history, $o);
	}
	/**
	 * Enregistre un debug info instance
	 * @param string $message Le message à enregistrer
	 * @param int $level Le niveau du message
	 */
	public function localInfo($message, $level=1){
		$o = array("type"=>"info", 
				   "level"=>$level, 
				   "instance"=>true, 
				   "message"=>$message);
		array_push($this->_insthistory, $o);
		array_push(self::_history, $o);
	}
	/**
	 * Enregistre un debug action instance
	 * @param string $message Le message à enregistrer
	 * @param int $level Le niveau du message
	 */
	public function localAction($message, $level=1){
		$o = array("type"=>"error", 
				   "level"=>$level, 
				   "instance"=>true, 
				   "message"=>$message);
		array_push($this->_insthistory, $o);
		array_push(self::_history, $o);
	}
 
	/**
	 * Enregistre un debug error général
	 * @param string $message Le message à enregistrer
	 * @param int $level Le niveau du message
	 */
	public static function error($message, $level=1){
		array_push(self::_history, 
				   array("type"=>"error", 
						 "level"=>$level, 
						 "instance"=>false, 
						 "message"=>$message));
	}
	/**
	 * Enregistre un debug info général
	 * @param string $message Le message à enregistrer
	 * @param int $level Le niveau du message
	 */
	public static function info($message, $level=1){
		array_push(self::_history, 
				   array("type"=>"info", 
						 "level"=>$level, 
						 "instance"=>false, 
						 "message"=>$message));
	}
	/**
	 * Enregistre un debug action général
	 * @param string $message Le message à enregistrer
	 * @param int $level Le niveau du message
	 */
	public static function action($message, $level=1){
		array_push(self::_history, 
				   array("type"=>"action", 
						 "level"=>$level, 
						 "instance"=>false, 
						 "message"=>$message));
	}
	/**
	 * Affichage de l'historique de debug (sortie navigateur)
	 * @param array $types La liste des types de message à afficher
	 * @param int $level Le niveau de debug
	 * @param bool $instance Indique s'il faut afficher le debug des instances
	 */
	public static function show($types=array("error", "info", "action"), $level=3, $instance=false){
		for($i; $i<count(self::_history); $i++){
			echo "<ul class=\"debug\">";
			if(in_array(self::_history["type"], $types) && self::_history["level"] <= $level && self::_history["instance"] == $instance){
				echo "<li class=\"".self::_history["type"]."\">";
				switch(self::_history["type"]){ 
					case "error": echo "[ERR] "; break;
					case "info": echo "[INF] "; break;
					case "action": echo "[ACT] "; break;
				}
				echo self::_history["message"];
				echo "</li>";
			}
			echo "</ul>";
		}
	}
	/*==================== FIN = METHODES PUBLIQUES = FIN ====================*/
	/*========================================================================*/
}