15,15 → 15,28 |
* @link /doc/framework/ |
*/ |
class Debug { |
|
|
/** Paramètrer le fichier de config avec "php:Debug::MODE_ECHO" : les messages sont affichés en utilisant echo au moment |
* où ils sont déclenchés dans le code.*/ |
const MODE_ECHO = 'echo'; |
|
/** Paramètrer le fichier de config avec "php:Debug::MODE_NOTICE" : les message sont stockés par le gestionnaire |
* d'exception sous forme d'erreur de type E_USER_NOTICE et sont renvoyés sur la sortie standard à la fin de l'execution |
* du programme (via echo).*/ |
const MODE_NOTICE = 'e_user_notice'; |
|
/** |
* mode de php (cli ou sapi) |
*/ |
/** Paramètrer le fichier de config avec "php:Debug::MODE_ENTETE_HTTP" : les message sont stockés par le gestionnaire |
* d'exception sous forme d'erreur de type E_USER_NOTICE et sont renvoyés dans un entête HTTP (X_REST_DEBOGAGE_MESSAGES) |
* à la fin de l'execution du programme. |
* Surtout utile pour le Serveur REST. */ |
const MODE_ENTETE_HTTP = 'entete_http'; |
|
/** Mode de php (cli ou sapi) */ |
protected static $mode = null; |
|
|
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/ |
private static $parametres_obligatoires = array('fw_debogage', 'fw_debogage_mode'); |
|
/** |
* Accesseur pour le mode |
* @return string le mode de php |
124,19 → 137,19 |
* @return string la chaine de debogage formatée ou bien null si echo |
*/ |
private static function traiterDebogage($mot_cle, $sortie, $echo) { |
// Formate le mot-clé |
self::verifierParametresConfig(self::$parametres_obligatoires); |
$debogage = Config::get('fw_debogage'); |
$mode = Config::get('fw_debogage_mode'); |
|
$mot_cle = self::formaterMotCle($mot_cle); |
|
// Traitement de la sortie |
$sortie = self::traiterSortieSuivantMode($mot_cle, $sortie); |
|
// Affichage et/ou retour |
self::verifierParametresConfig(); |
if (Config::get('fw_debogage') == true) { |
if ($echo === true || Config::get('fw_debogage_mode') == self::MODE_ECHO) { |
if ($debogage == true) { |
if ($echo === true || $mode == self::MODE_ECHO) { |
echo $sortie; |
return null; |
} else if (Config::get('fw_debogage_mode') == self::MODE_NOTICE) { |
} else if ($mode == self::MODE_NOTICE || $mode == self::MODE_ENTETE_HTTP) { |
trigger_error($sortie, E_USER_NOTICE); |
return null; |
} else { |
173,15 → 186,17 |
/** |
* Vérifie que tous les paramêtres de config nécessaires au fonctionnement de cette classe existe dans les fichiers |
* de configurations. |
* |
* @param array $parametres talbeau des noms des paramètres de la config à verifier. |
* @return boolean true si tous les paramétres sont présents sinon false. |
*/ |
private static function verifierParametresConfig() { |
public static function verifierParametresConfig(Array $parametres) { |
$ok = true; |
$parametres = array('fw_debogage', 'fw_debogage_mode'); |
foreach ($parametres as $param) { |
if (is_null(Config::get($param))) { |
$classe = get_class(); |
$m = "L'utilisation de la classe $classe nécessite de définir '$param' dans un fichier de configuration."; |
trigger_error($m, E_USER_WARNING); |
trigger_error($m, E_USER_ERROR); |
$ok = false; |
} |
} |