Subversion Repositories Applications.framework

Compare Revisions

Ignore whitespace Rev 236 → Rev 237

/trunk/framework/Debug.php
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;
}
}