Subversion Repositories Applications.gtt

Rev

Rev 95 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 95 Rev 104
Line 49... Line 49...
49
 
49
 
50
 
50
 
51
/**
51
/**
52
 * Classe GestionnaireErreur
52
 * Classe GestionnaireErreur
53
 * 
53
 * 
54
 * Gérer les erreurs PHP et SQL.
54
 * Gérer les erreurs PHP et SQL.
55
 */
55
 */
56
class GestionnaireErreur
56
class GestionnaireErreur
Line 68... Line 68...
68
	 * @access private
68
	 * @access private
69
	 */
69
	 */
70
	private $erreurs;
70
	private $erreurs;
Line 71... Line 71...
71
 
71
 
72
	/**
72
	/**
73
	 * Permet de savoir si on veut faire apparaître ou pas le contexte de l'erreur,
73
	 * Permet de savoir si on veut faire apparaître ou pas le contexte de l'erreur,
74
	 * c'est à dire le contenu des variables.
74
	 * c'est à dire le contenu des variables.
75
	 * @access private
75
	 * @access private
76
	 */
76
	 */
Line 77... Line 77...
77
	private $contexte;
77
	private $contexte;
78
	
78
	
79
	/**
79
	/**
80
	 * Contient le niveau d'erreur courrant. Celui que l'on donne à la fonction
80
	 * Contient le niveau d'erreur courrant. Celui que l'on donne à la fonction
81
	 * error_reporting().
81
	 * error_reporting().
82
	 * @access private
82
	 * @access private
Line 100... Line 100...
100
	}
100
	}
Line 101... Line 101...
101
	
101
	
102
	/*** Accesseurs: ***/
102
	/*** Accesseurs: ***/
103
	 // end of member function __construct
103
	 // end of member function __construct
104
	/**
104
	/**
105
	 * Récupère le tableau des erreurs.
105
	 * Récupère le tableau des erreurs.
106
	 *
106
	 *
107
	 * @return array
107
	 * @return array
108
	 * @access public
108
	 * @access public
109
	 */
109
	 */
110
	public function getErreur( ) {
110
	public function getErreur( ) {
111
		return $this->erreurs;
111
		return $this->erreurs;
Line 112... Line 112...
112
	}
112
	}
113
 
113
 
114
	/**
114
	/**
115
	 * Ajoute une erreur à la liste.
115
	 * Ajoute une erreur à la liste.
116
	 *
116
	 *
117
	 * @param array une_erreur 	 
117
	 * @param array une_erreur 	 
118
	 * @return void
118
	 * @return void
119
	 * @access public
119
	 * @access public
120
	 */
120
	 */
121
	public function setErreur( $une_erreur ) {
121
	public function setErreur( $une_erreur ) {
Line 122... Line 122...
122
		$this->erreurs[] = $une_erreur;
122
		$this->erreurs[] = $une_erreur;
123
	}
123
	}
124
 
124
 
125
	/**
125
	/**
126
	 * Récupère la valeur du contexte.
126
	 * Récupère la valeur du contexte.
127
	 *
127
	 *
128
	 * @return boolean
128
	 * @return boolean
129
	 * @access public
129
	 * @access public
130
	 */
130
	 */
Line 131... Line 131...
131
	public function getContexte( ) {
131
	public function getContexte( ) {
132
		return $this->contexte;
132
		return $this->contexte;
133
	}
133
	}
134
 
134
 
135
	/**
135
	/**
136
	 * Définit si oui ou non le contexte sera affiché.
136
	 * Définit si oui ou non le contexte sera affiché.
137
	 *
137
	 *
138
	 * @param boolean un_contexte
138
	 * @param boolean un_contexte
139
	 * @return  void
139
	 * @return  void
140
	 * @access public
140
	 * @access public
Line 141... Line 141...
141
	 */
141
	 */
142
	public function setContexte( $un_contexte ) {
142
	public function setContexte( $un_contexte ) {
143
		$this->contexte = $un_contexte;
143
		$this->contexte = $un_contexte;
144
	}
144
	}
145
	
145
	
146
	/**
146
	/**
147
	 * Récupère le niveau d'erreur courrant.
147
	 * Récupère le niveau d'erreur courrant.
148
	 *
148
	 *
149
	 * @return int le niveau d'erreur courrant.
149
	 * @return int le niveau d'erreur courrant.
Line 150... Line 150...
150
	 * @access public
150
	 * @access public
151
	 */
151
	 */
152
	public function getNiveauErreurCourrant( ) {
152
	public function getNiveauErreurCourrant( ) {
153
		return (int)$this->niveau_erreur_courrant;
153
		return (int)$this->niveau_erreur_courrant;
154
	}
154
	}
155
 
155
 
156
	/**
156
	/**
157
	 * Définit le niveau d'erreur courrant.
157
	 * Définit le niveau d'erreur courrant.
158
	 *
158
	 *
159
	 * @param int un niveau d'erreur.
159
	 * @param int un niveau d'erreur.
Line 160... Line 160...
160
	 * @return void
160
	 * @return void
161
	 * @access public
161
	 * @access public
162
	 */
162
	 */
163
	public function setNiveauErreurCourrant( $niveau = 2048 ) {
163
	public function setNiveauErreurCourrant( $niveau = 2048 ) {
164
		$this->niveau_erreur_courrant = $niveau;
164
		$this->niveau_erreur_courrant = $niveau;
165
	}
165
	}
166
	
166
	
167
	/**
167
	/**
168
	 * Définit le niveau d'erreur courrant (synonyme fonction precedente)
168
	 * Définit le niveau d'erreur courrant (synonyme fonction precedente)
169
	 *
169
	 *
Line 170... Line 170...
170
	 * @param int un niveau d'erreur.
170
	 * @param int un niveau d'erreur.
Line 171... Line 171...
171
	 * @return void
171
	 * @return void
172
	 * @access public
172
	 * @access public
173
	 */
173
	 */
174
	public function setActive ($niveau) {
174
	public function setActive ($niveau) {
Line 189... Line 189...
189
	 * @access public
189
	 * @access public
190
	 */
190
	 */
191
	public function gererErreur($niveau,  $message,  $fichier,  $ligne,  $contexte)
191
	public function gererErreur($niveau,  $message,  $fichier,  $ligne,  $contexte)
192
	{
192
	{
193
		$aso_erreur = array();
193
		$aso_erreur = array();
194
		// Nous vérifions si nous affichons ou pas l'erreur en fonction du niveau demandé
194
		// Nous vérifions si nous affichons ou pas l'erreur en fonction du niveau demandé
195
		if ( $niveau <= $this->getNiveauErreurCourrant() ) {
195
		if ( $niveau <= $this->getNiveauErreurCourrant() ) {
196
			$aso_erreur['niveau'] = $niveau;
196
			$aso_erreur['niveau'] = $niveau;
197
			$aso_erreur['message'] = $message;
197
			$aso_erreur['message'] = $message;
198
			$aso_erreur['fichier'] = $fichier;
198
			$aso_erreur['fichier'] = $fichier;
199
			$aso_erreur['ligne'] = $ligne;
199
			$aso_erreur['ligne'] = $ligne;
200
			if ($this->getContexte()) {
200
			if ($this->getContexte()) {
201
				$aso_erreur['contexte'] = $contexte;
201
				$aso_erreur['contexte'] = $contexte;
202
			}
202
			}
203
			$this->setErreur($aso_erreur);
203
			$this->setErreur($aso_erreur);
204
		}
204
		}
205
		// Si nous avons à faire à une erreur et non à un warning ou une notice, nous arrêtons l'exécution du script
205
		// Si nous avons à faire à une erreur et non à un warning ou une notice, nous arrêtons l'exécution du script
206
		switch ($niveau) {
206
		switch ($niveau) {
207
			case E_ERROR :
207
			case E_ERROR :
208
			case E_USER_ERROR :
208
			case E_USER_ERROR :
209
				die($this->retournerErreur());
209
				die($this->retournerErreur());
210
				break;
210
				break;
211
		}
211
		}
212
	}
212
	}
Line 213... Line 213...
213
 
213
 
214
	/**
214
	/**
215
	 * Retourne l'erreur PHP formatée en XHTML.
215
	 * Retourne l'erreur PHP formatée en XHTML.
216
	 *
216
	 *
217
	 * @return string
217
	 * @return string
218
	 * @access public
218
	 * @access public
219
	 */
219
	 */
Line 283... Line 283...
283
		}
283
		}
284
		$erreur_pear_nbre = $erreur_pear_fichier_nbre + $erreur_pear_message_nbre;
284
		$erreur_pear_nbre = $erreur_pear_fichier_nbre + $erreur_pear_message_nbre;
285
		if ($erreur_pear_nbre != 0) {
285
		if ($erreur_pear_nbre != 0) {
286
			$retour .= 	'<p class="attention">'.
286
			$retour .= 	'<p class="attention">'.
287
						'<strong>Nombre d\'erreurs PEAR totales : </strong>'.$erreur_pear_nbre.'<br />'."\n".
287
						'<strong>Nombre d\'erreurs PEAR totales : </strong>'.$erreur_pear_nbre.'<br />'."\n".
288
						'<strong> - éliminées car le "fichier" correspondé à '.GTT_DEBOGAGE_PEAR_REGEXP_CHAINE.' : </strong>'.$erreur_pear_fichier_nbre.'<br />'."\n".
288
						'<strong> - éliminées car le "fichier" correspondé à '.GTT_DEBOGAGE_PEAR_REGEXP_CHAINE.' : </strong>'.$erreur_pear_fichier_nbre.'<br />'."\n".
289
						'<strong> - éliminées car le "message" correspondé à '.GTT_DEBOGAGE_PEAR_REGEXP_MESSAGE.' : </strong>'.$erreur_pear_message_nbre.'<br />'."\n".
289
						'<strong> - éliminées car le "message" correspondé à '.GTT_DEBOGAGE_PEAR_REGEXP_MESSAGE.' : </strong>'.$erreur_pear_message_nbre.'<br />'."\n".
290
						'</p>'."\n";
290
						'</p>'."\n";
291
		}
291
		}
292
		return $retour;
292
		return $retour;
293
	}
293
	}
Line 294... Line 294...
294
 
294
 
295
	/**
295
	/**
296
	* Retourne l'erreur SQL formatée en XHTML.
296
	* Retourne l'erreur SQL formatée en XHTML.
297
	*
297
	*
298
	* @param string fichier
298
	* @param string fichier
299
	* @param int ligne
299
	* @param int ligne
300
	* @param string message
300
	* @param string message
Line 309... Line 309...
309
		$retour = '';
309
		$retour = '';
310
		switch (php_sapi_name()) {
310
		switch (php_sapi_name()) {
311
			case 'cli' :
311
			case 'cli' :
312
				$retour .= 'ERREUR SQL '."\n";
312
				$retour .= 'ERREUR SQL '."\n";
313
				$retour .= 'Fichier : '.$fichier."\n";
313
				$retour .= 'Fichier : '.$fichier."\n";
314
				$retour .= 'Méthode : '.$methode."\n";
314
				$retour .= 'Méthode : '.$methode."\n";
315
				$retour .= 'Message : '.$message."\n";
315
				$retour .= 'Message : '.$message."\n";
316
				if (!is_null($requete)) {
316
				if (!is_null($requete)) {
317
					$retour .= 'Requete : '."\n";
317
					$retour .= 'Requete : '."\n";
318
					$retour .= $requete."\n";
318
					$retour .= $requete."\n";
319
		    	}
319
		    	}
Line 329... Line 329...
329
				$retour .= '<h1 > ERREUR SQL </h1><br />'."\n";
329
				$retour .= '<h1 > ERREUR SQL </h1><br />'."\n";
330
				$retour .= '<dl>'."\n";
330
				$retour .= '<dl>'."\n";
331
				$retour .= '<dt> Fichier : </dt> ';
331
				$retour .= '<dt> Fichier : </dt> ';
332
				$retour .= '<dd> '.$fichier.'</dd>'."\n";
332
				$retour .= '<dd> '.$fichier.'</dd>'."\n";
Line 333... Line 333...
333
				
333
				
334
				$retour .= '<dt> Méthode : </dt> ';
334
				$retour .= '<dt> Méthode : </dt> ';
Line 335... Line 335...
335
				$retour .= '<dd> '.$methode.'</dd>'."\n";
335
				$retour .= '<dd> '.$methode.'</dd>'."\n";
336
				
336
				
Line 356... Line 356...
356
 
356
 
357
/* +--Fin du code ----------------------------------------------------------------------------------------+
357
/* +--Fin du code ----------------------------------------------------------------------------------------+
358
*
358
*
359
* $Log: GestionnaireErreur.class.php,v $
359
* $Log: GestionnaireErreur.class.php,v $
360
* Revision 1.6  2007-07-09 18:54:43  jp_milcent
360
* Revision 1.6  2007-07-09 18:54:43  jp_milcent
361
* Remplacement des balises html par des entités pour le message des E_USER_NOTICE.
361
* Remplacement des balises html par des entités pour le message des E_USER_NOTICE.
362
*
362
*
363
* Revision 1.5  2007-07-02 15:31:53  jp_milcent
363
* Revision 1.5  2007-07-02 15:31:53  jp_milcent
364
* Initialisation d'une variable.
364
* Initialisation d'une variable.
365
*
365
*
Line 368... Line 368...
368
*
368
*
369
* Revision 1.3  2007-07-02 10:50:06  jp_milcent
369
* Revision 1.3  2007-07-02 10:50:06  jp_milcent
370
* Ajout de la gestion du mode d'affichage (xhtml ou txt).
370
* Ajout de la gestion du mode d'affichage (xhtml ou txt).
371
*
371
*
372
* Revision 1.2  2007-01-15 15:30:03  jp_milcent
372
* Revision 1.2  2007-01-15 15:30:03  jp_milcent
373
* Amélioration du gestionnaire d'erreur pour qu'il prenne en compte les erreurs Pear des méthodes "non static"...
373
* Amélioration du gestionnaire d'erreur pour qu'il prenne en compte les erreurs Pear des méthodes "non static"...
374
*
374
*
375
* Revision 1.1  2007/01/12 13:16:09  jp_milcent
375
* Revision 1.1  2007/01/12 13:16:09  jp_milcent
376
* Déplacement des classes de débogage et d'optimisation dans le dossier noyau.
376
* Déplacement des classes de débogage et d'optimisation dans le dossier noyau.
377
*
377
*
378
* Revision 1.9  2006/10/25 08:15:23  jp_milcent
378
* Revision 1.9  2006/10/25 08:15:23  jp_milcent
379
* Fusion avec la livraison Decaisne.
379
* Fusion avec la livraison Decaisne.
380
*
380
*
381
* Revision 1.8.2.1  2006/08/29 09:22:37  jp_milcent
381
* Revision 1.8.2.1  2006/08/29 09:22:37  jp_milcent
382
* Correction et amélioration du gestionnaire d'erreurs.
382
* Correction et amélioration du gestionnaire d'erreurs.
383
*
383
*
384
* Revision 1.8  2006/07/20 13:33:46  jp_milcent
384
* Revision 1.8  2006/07/20 13:33:46  jp_milcent
385
* Légère modif affichage.
385
* Légère modif affichage.
386
*
386
*
387
* Revision 1.7  2006/07/20 13:33:03  jp_milcent
387
* Revision 1.7  2006/07/20 13:33:03  jp_milcent
388
* Amélioration du gestionnaire d'erreur.
388
* Amélioration du gestionnaire d'erreur.
389
*
389
*
390
* Revision 1.6  2006/07/20 13:27:07  jp_milcent
390
* Revision 1.6  2006/07/20 13:27:07  jp_milcent
391
* Ajout du type information.
391
* Ajout du type information.
392
*
392
*
393
* Revision 1.5  2006/05/29 13:52:41  ddelon
393
* Revision 1.5  2006/05/29 13:52:41  ddelon
394
* Integration wiki dans eflore
394
* Integration wiki dans eflore
395
*
395
*
396
* Revision 1.4  2005/12/09 10:47:05  jp_milcent
396
* Revision 1.4  2005/12/09 10:47:05  jp_milcent
397
* Amélioration du Gestionnaire de Bogues.
397
* Amélioration du Gestionnaire de Bogues.
398
*
398
*
399
* Revision 1.3  2005/10/10 07:28:07  jp_milcent
399
* Revision 1.3  2005/10/10 07:28:07  jp_milcent
400
* Utilisation du webservice Yahoo-Image.
400
* Utilisation du webservice Yahoo-Image.
401
*
401
*
402
* Revision 1.2  2005/10/04 16:34:03  jp_milcent
402
* Revision 1.2  2005/10/04 16:34:03  jp_milcent
403
* Début gestion de la chorologie.
403
* Début gestion de la chorologie.
404
* Ajout de la bibliothèque de cartographie (à améliorer!).
404
* Ajout de la bibliothèque de cartographie (à améliorer!).
405
*
405
*
406
* Revision 1.1  2005/08/04 15:51:45  jp_milcent
406
* Revision 1.1  2005/08/04 15:51:45  jp_milcent
407
* Implémentation de la gestion via DAO.
407
* Implémentation de la gestion via DAO.
408
* Fin page d'accueil.
408
* Fin page d'accueil.
409
* Fin formulaire recherche taxonomique.
409
* Fin formulaire recherche taxonomique.
410
*
410
*
411
* Revision 1.3  2005/08/02 16:19:33  jp_milcent
411
* Revision 1.3  2005/08/02 16:19:33  jp_milcent
412
* Amélioration des requetes de recherche de noms.
412
* Amélioration des requetes de recherche de noms.
413
*
413
*
414
* Revision 1.2  2005/08/01 16:18:39  jp_milcent
414
* Revision 1.2  2005/08/01 16:18:39  jp_milcent
415
* Début gestion résultat de la recherche par nom.
415
* Début gestion résultat de la recherche par nom.
416
*
416
*
417
* Revision 1.1  2005/07/28 15:37:56  jp_milcent
417
* Revision 1.1  2005/07/28 15:37:56  jp_milcent
418
* Début gestion des squelettes et de l'API eFlore.
418
* Début gestion des squelettes et de l'API eFlore.
419
*
419
*
420
*
420
*
421
* +-- Fin du code ----------------------------------------------------------------------------------------+
421
* +-- Fin du code ----------------------------------------------------------------------------------------+
422
*/
422
*/
423
?>
423
?>
424
424