Subversion Repositories Applications.gtt

Rev

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

Rev 10 Rev 48
Line 51... Line 51...
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 {
57
{
-
 
58
	/*** Attributes: ***/
57
	/*** Attributes: ***/
Line 59... Line 58...
59
 
58
 
60
	/**
59
	/**
61
	 * Contient la liste des erreurs.
60
	* Contient la liste des erreurs.
Line 69... Line 68...
69
	 * @access private
68
	* @access private
70
	 */
69
	*/
71
	private $contexte;
70
	private $contexte;
Line 72... Line 71...
72
	
71
 
-
 
72
	/**
-
 
73
	* Permet de savoir si on veut faire apparaître ou pas les erreurs Pear.
-
 
74
	* @access private
-
 
75
	*/
-
 
76
	private $pear;
-
 
77
 
-
 
78
	/**
-
 
79
	* Chaine de caractères permettant d'identifier les erreurs de la bibliothèque Pear.
-
 
80
	* @access private
-
 
81
	*/
-
 
82
	private $pear_chaine;
-
 
83
 
73
	/**
84
	/**
74
	 * Contient le niveau d'erreur courrant. Celui que l'on donne à la fonction
85
	* Contient le niveau d'erreur courrant. Celui que l'on donne à la fonction
75
	 * error_reporting().
86
	* error_reporting().
76
	 * @access private
87
	* @access private
77
	 */
88
	*/
Line 83... Line 94...
83
	 * Construit le gestionnaire d'erreur.
94
	* Construit le gestionnaire d'erreur.
84
	 *
95
	*
85
	 * @return void
96
	* @return void
86
	 * @access public
97
	* @access public
87
	 */
98
	*/
88
	public function __construct( $contexte = FALSE ) {
99
	public function __construct($bool_contexte = false, $int_niveau = 2048, $bool_pear = false, $str_pear = '')
-
 
100
	{
89
		$this->erreurs = array();
101
		$this->erreurs = array();
90
		$this->setContexte($contexte);
102
		$this->setContexte($bool_contexte);
-
 
103
		$this->setNiveauErreurCourrant($int_niveau);
-
 
104
		$this->setPear($bool_pear);
-
 
105
		$this->setPearChaine($str_pear);
91
		set_error_handler(array($this, 'gererErreur'));
106
		set_error_handler(array($this, 'gererErreur'));
92
	} // end of member function __construct
107
	} // end of member function __construct
Line 93... Line 108...
93
	
108
 
Line 104... Line 119...
104
	 * Récupère le tableau des erreurs.
119
	* Récupère le tableau des erreurs.
105
	 *
120
	*
106
	 * @return array
121
	* @return array
107
	 * @access public
122
	* @access public
108
	 */
123
	*/
109
	public function getErreur( ) {
124
	public function getErreur()
-
 
125
	{
110
		return $this->erreurs;
126
		return $this->erreurs;
111
	}
127
	}
Line 112... Line 128...
112
 
128
 
113
	/**
129
	/**
114
	 * Ajoute une erreur à la liste.
130
	* Ajoute une erreur à la liste.
115
	 *
131
	*
116
	 * @param array une_erreur 	 
132
	* @param array une_erreur
117
	 * @return void
133
	* @return void
118
	 * @access public
134
	* @access public
119
	 */
135
	*/
-
 
136
	public function setErreur($une_erreur)
120
	public function setErreur( $une_erreur ) {
137
	{
121
		$tab_erreurs =& $this->getErreur();
138
		$tab_erreurs =& $this->getErreur();
122
		array_push($tab_erreurs, $une_erreur);
139
		array_push($tab_erreurs, $une_erreur);
Line 123... Line 140...
123
	}
140
	}
124
 
141
 
125
	/**
142
	/**
126
	 * Récupère la valeur du contexte.
143
	* Récupère la valeur du contexte.
127
	 *
144
	*
128
	 * @return boolean
145
	* @return boolean
129
	 * @access public
146
	* @access public
-
 
147
	*/
130
	 */
148
	public function getContexte()
131
	public function getContexte( ) {
149
	{
Line 132... Line 150...
132
		return $this->contexte;
150
		return $this->contexte;
133
	}
151
	}
134
 
152
 
135
	/**
153
	/**
136
	 * Définit si oui ou non le contexte sera affiché.
154
	* Définit si oui ou non le contexte sera affiché.
137
	 *
155
	*
138
	 * @param boolean un_contexte
156
	* @param boolean un_contexte
139
	 * @return  void
157
	* @return  void
-
 
158
	* @access public
140
	 * @access public
159
	*/
141
	 */
160
	public function setContexte( $un_contexte )
Line 142... Line 161...
142
	public function setContexte( $un_contexte ) {
161
	{
-
 
162
		$this->contexte = $un_contexte;
-
 
163
	}
-
 
164
 
-
 
165
	/**
-
 
166
	* Récupère la valeur de l'attribut Pear.
-
 
167
	*
-
 
168
	* @return boolean true pour afficher les erreurs Pear sinon false.
-
 
169
	* @access public
-
 
170
	*/
-
 
171
	public function getPear()
-
 
172
	{
-
 
173
		return $this->pear;
-
 
174
	}
-
 
175
 
-
 
176
	/**
-
 
177
	* Définit si oui ou non les erreurs Pear seront affichées.
-
 
178
	*
-
 
179
	* @param boolean true pour afficher les erreurs Pear sinon false.
-
 
180
	* @return  void
-
 
181
	* @access public
-
 
182
	*/
-
 
183
	public function setPear( $p )
-
 
184
	{
-
 
185
		$this->pear = $p;
-
 
186
	}
-
 
187
 
-
 
188
	/**
-
 
189
	* Récupère la valeur de l'attribut pear_chaine.
-
 
190
	*
-
 
191
	* @return string la chaine de caractère identifiant les erreurs Pear.
-
 
192
	* @access public
-
 
193
	*/
-
 
194
	public function getPearChaine()
-
 
195
	{
-
 
196
		return $this->pear_chaine;
-
 
197
	}
-
 
198
 
-
 
199
	/**
-
 
200
	* Définit la chaine de caractère identifiant les erreurs Pear.
-
 
201
	*
-
 
202
	* @param string la chaine de caractère identifiant les erreurs Pear.
-
 
203
	* @return  void
-
 
204
	* @access public
-
 
205
	*/
-
 
206
	public function setPearChaine( $pc )
-
 
207
	{
-
 
208
		$this->pear_chaine = $pc;
143
		$this->contexte = $un_contexte;
209
	}
144
	}
210
 
145
	
211
 
146
	/**
212
	/**
147
	 * Récupère le niveau d'erreur courrant.
213
	* Récupère le niveau d'erreur courrant.
148
	 *
214
	*
-
 
215
	* @return int le niveau d'erreur courrant.
149
	 * @return int le niveau d'erreur courrant.
216
	* @access public
150
	 * @access public
217
	*/
Line 151... Line 218...
151
	 */
218
	public function getNiveauErreurCourrant()
152
	public function getNiveauErreurCourrant( ) {
219
	{
153
		return (int)$this->niveau_erreur_courrant;
220
		return (int)$this->niveau_erreur_courrant;
154
	}
221
	}
155
 
222
 
156
	/**
223
	/**
157
	 * Définit le niveau d'erreur courrant.
224
	* Définit le niveau d'erreur courrant.
158
	 *
225
	*
-
 
226
	* @param int un niveau d'erreur.
159
	 * @param int un niveau d'erreur.
227
	* @return void
160
	 * @return void
228
	* @access public
Line 161... Line 229...
161
	 * @access public
229
	*/
Line 174... Line 242...
174
	 * @param int ligne
242
	* @param int ligne
175
	 * @param boolean contexte
243
	* @param boolean contexte
176
	 * @return void
244
	* @return void
177
	 * @access public
245
	* @access public
178
	 */
246
	*/
179
	public function gererErreur( $niveau,  $message,  $fichier,  $ligne,  $contexte ) {
247
	public function gererErreur( $niveau,  $message,  $fichier,  $ligne,  $contexte )
-
 
248
	{
180
		$aso_erreur = array();
249
		$aso_erreur = array();
181
		// Nous vérifions si nous affichons ou pas l'erreur en fonction du niveau demandé
250
		// Nous vérifions si nous affichons ou pas l'erreur en fonction du niveau demandé
182
		if ( $niveau <= $this->getNiveauErreurCourrant() ) {
251
		if ( $niveau <= $this->getNiveauErreurCourrant() ) {
183
			$aso_erreur['niveau'] = $niveau;
252
			$aso_erreur['niveau'] = $niveau;
184
			$aso_erreur['message'] = $message;
253
			$aso_erreur['message'] = $message;
Line 201... Line 270...
201
	 * Retourne l'erreur PHP formatée en XHTML.
270
	 * Retourne l'erreur PHP formatée en XHTML.
202
	 *
271
	 *
203
	 * @return string
272
	 * @return string
204
	 * @access public
273
	 * @access public
205
	 */
274
	 */
206
	public function retournerErreur() {
275
	public function retournerErreur()
-
 
276
	{
207
		$retour = '';
277
		$retour = '';
-
 
278
		$erreur_pear_nbre = 0;
208
		foreach($this->getErreur() as $aso_erreur) {
279
		foreach($this->getErreur() as $aso_erreur) {
209
			if ('<!-- BEGIN sql -->' == substr($aso_erreur['message'], 0, 18)) {
280
			if ('<!-- BEGIN sql -->' == substr($aso_erreur['message'], 0, 18)) {
210
				$retour .= $aso_erreur['message'];
281
				$retour .= $aso_erreur['message'];
211
				continue;
282
				continue;
212
			}
283
			}
-
 
284
			// Nous testons les erreurs PEAR pour ne pas en tenir compte
-
 
285
			if (!$this->getPear() && stristr($aso_erreur['fichier'], $this->getPearChaine())) {
-
 
286
				$erreur_pear_nbre++;
-
 
287
			} else {
213
			$retour .= '<p class="erreur">'."\n";
288
				$retour .= '<p class="attention">'."\n";
214
			$retour .= '<strong>ERREUR</strong><br />'."\n";
289
				$retour .= '<strong>ERREUR</strong><br />'."\n";
215
			$retour .= '<strong>Niveau : </strong>'.$aso_erreur['niveau'].'<br />'."\n";
290
				$retour .= '<strong>Niveau : </strong>'.$aso_erreur['niveau'].'<br />'."\n";
216
			$retour .= '<strong>Message : </strong>'.$aso_erreur['message'].'<br />'."\n";
291
				$retour .= '<strong>Message : </strong>'.$aso_erreur['message'].'<br />'."\n";
217
			$retour .= '<strong>Fichier : </strong>'.$aso_erreur['fichier'].'<br />'."\n";
292
				$retour .= '<strong>Fichier : </strong>'.$aso_erreur['fichier'].'<br />'."\n";
218
			$retour .= '<strong>Ligne : </strong>'.$aso_erreur['ligne'].'<br />'."\n";
293
				$retour .= '<strong>Ligne : </strong>'.$aso_erreur['ligne'].'<br />'."\n";
Line 221... Line 296...
221
                $retour .= '<stong>Contexte : </stong>'."\n".print_r($aso_erreur['contexte'], true)."\n";
296
					$retour .= '<stong>Contexte : </stong>'."\n".print_r($aso_erreur['contexte'], true)."\n";
222
                $retour .= '</pre>'."\n";
297
					$retour .= '</pre>'."\n";
223
            }
298
				}
224
            $retour .= '</p>'."\n";
299
				$retour .= '</p>'."\n";
225
		}
300
			}
-
 
301
		}
-
 
302
		if ($erreur_pear_nbre != 0) {
-
 
303
			$retour .= '<p class="attention"><strong>Nombre d\'erreurs PEAR : </strong>'.$erreur_pear_nbre.'</p>'."\n";
-
 
304
		}
226
		return $retour;
305
		return $retour;
227
	} // end of member function retournerErreur
306
	} // end of member function retournerErreur
Line 228... Line 307...
228
 
307
 
229
	/**
308
	/**
Line 236... Line 315...
236
	 * @param string autres
315
	* @param string autres
237
	 * @return string
316
	* @return string
238
	 * @static
317
	* @static
239
	 * @access public
318
	* @access public
240
	 */
319
	*/
241
	public static function retournerErreurSql( $fichier,  $methode,  $message,  $requete = NULL,  $autres = NULL ) {
320
	public static function retournerErreurSql( $fichier,  $methode,  $message,  $requete = NULL,  $autres = NULL )
-
 
321
	{
242
		$retour = '<!-- BEGIN sql -->';
322
		$retour = '<!-- BEGIN sql -->';
243
		$retour .= '<div id="zone_erreur">'."\n";
323
		$retour .= '<div id="zone_erreur">'."\n";
244
		$retour .= '<h1 > ERREUR SQL </h1><br />'."\n";
324
		$retour .= '<h1 > ERREUR SQL </h1><br />'."\n";
245
		$retour .= '<dl>'."\n";
325
		$retour .= '<dl>'."\n";
246
		$retour .= '<dt> Fichier : </dt> ';
326
		$retour .= '<dt> Fichier : </dt> ';
Line 292... Line 372...
292
			}
372
			}
293
			$retour .= "\t".'Message : '.$message."\n";
373
			$retour .= "\t".'Message : '.$message."\n";
294
		}
374
		}
295
		return $retour;
375
		return $retour;
296
	}
376
	}
297
} // end of GestionnaireErreur
-
 
-
 
377
}
Line 298... Line 378...
298
 
378
 
299
/* +--Fin du code ----------------------------------------------------------------------------------------+
379
/* +--Fin du code ----------------------------------------------------------------------------------------+
300
*
-
 
301
* $Log: GestionnaireErreur.class.php,v $
-
 
302
* Revision 1.1  2005/11/15 17:33:49  jp_milcent
-
 
303
* Ajout de classe Système pour le débogage.
-
 
304
* Ces classes sont à améliorer!
-
 
305
*
-
 
306
* Revision 1.3  2005/10/10 07:28:07  jp_milcent
-
 
307
* Utilisation du webservice Yahoo-Image.
380
*
308
*
-
 
309
* Revision 1.2  2005/10/04 16:34:03  jp_milcent
-
 
310
* Début gestion de la chorologie.
-
 
311
* Ajout de la bibliothèque de cartographie (à améliorer!).
-
 
312
*
-
 
313
* Revision 1.1  2005/08/04 15:51:45  jp_milcent
-
 
314
* Implémentation de la gestion via DAO.
-
 
315
* Fin page d'accueil.
-
 
316
* Fin formulaire recherche taxonomique.
-
 
317
*
-
 
318
* Revision 1.3  2005/08/02 16:19:33  jp_milcent
-
 
319
* Amélioration des requetes de recherche de noms.
-
 
320
*
-
 
321
* Revision 1.2  2005/08/01 16:18:39  jp_milcent
-
 
322
* Début gestion résultat de la recherche par nom.
-
 
323
*
-
 
324
* Revision 1.1  2005/07/28 15:37:56  jp_milcent
-
 
325
* Début gestion des squelettes et de l'API eFlore.
-
 
326
*
381
* $Log$
327
*
382
*
328
* +-- Fin du code ----------------------------------------------------------------------------------------+
383
* +-- Fin du code ----------------------------------------------------------------------------------------+
329
*/
384
*/
330
?>
385
?>