'Erreur', "warn" => 'Attention', "info" => 'Info', "utilisateur" => 'Erreur', "niy" => 'Pas encore implémenté', "sql" => 'Requête SQL', "erreur_sql" => 'Erreur SQL', "permission" => 'Permission non accordée' ); public static $filtre_erreurs = array( "erreur" => true, "warn" => true, "info" => true, "niy" => true, "sql" => false, "erreur_sql" => true, "utilisateur" => true, "permission" => true ); public static $filtre_erreurs_en_production = array( "erreur" => false, "warn" => false, "info" => false, "niy" => false, "sql" => false, "erreur_sql" => false, "utilisateur" => true, // erreur générée par des données de l'utilisateur. "permission" => true // permission non accordée. ); public static $toutes_erreurs = false; // true <=> ignorer le filtre. public static $erreurs = array(); public function __call($nom, $args) { if (!array_key_exists($nom, self::$types_erreur)) { self::erreur("Type d'erreur inconnu : " . $nom . "\nArguments de Debug->$nom : " . var_export($args, true)); } elseif (count($args) != 1) { self::erreur("Mauvais nombre d'arguments pour Debug->$nom.\nArguments : " . var_export($args, true)); } else { self::push($nom, $args[0]); } } public static function push($cat, $msg) { array_push(self::$erreurs, array($cat, $msg)); } public static function erreur($msg) { self::push("erreur", $msg); self::die_btrace(); } public static function erreur_sql() { self::push("erreur_sql", mysql_error()); self::die_btrace(); } public static function die_btrace() { echo self::afficher(true, true, false); echo '
'; $ret .= '"; } return $ret; } } function Debug($fn) { $args = func_get_args(); array_shift($args); $d = new _Debug(); call_user_func_array(array($d, $fn), $args); } function niy($name) { Debug("niy", $name); } ?>Erreurs'; } if ($print) { foreach (self::$erreurs as $e) { if (self::$toutes_erreurs === true || (array_key_exists($e[0], self::$filtre_erreurs) && self::$filtre_erreurs[$e[0]] === true)) { $ret .= self::$types_erreur[$e[0]] . " : " . $e[1] . "\n"; } } } if ($end) { $ret .= "