Subversion Repositories Applications.framework

Compare Revisions

Ignore whitespace Rev 104 → Rev 105

/trunk/framework/Chronometre.php
1,4 → 1,5
<?php
// declare(encoding='UTF-8');
/** Fichier de la classe Chronometre
*
* PHP Version 5
13,12 → 14,12
*/
 
/** Classe Chronometre() - Permet de stocker et d'afficher
* les temps d'éxécution de script.
* les temps d'éxécution de script.
*
* Cette classe permet de réaliser un ensemble
* de mesure de temps prises à
* différents endroits d'un script.
* Ces mesures peuvent ensuite être affichées au
* Cette classe permet de réaliser un ensemble
* de mesure de temps prises à
* différents endroits d'un script.
* Ces mesures peuvent ensuite être affichées au
* sein d'un tableau XHTML.
*
*
43,9 → 44,9
 
/** Accesseurs :
*
* @param string $cle la cle associée à un chronomètre particulier
* @param string $cle la cle associ�e � un chronom�tre particulier
*
* @return int le temps écoulé
* @return int le temps �coul�
*/
public function getTemps($cle = null) {
$temps = '';
59,7 → 60,7
 
/** Setteur pour la variable temps
*
* @param array() $moment ajoute des points de chronométrage au tableau _temps
* @param array() $moment ajoute des points de chronom�trage au tableau _temps
*
* @return null
*/
67,21 → 68,21
array_push($this->_temps, $moment);
}
 
/*** Méthodes : ***/
/*** Méthodes : ***/
 
/** Méthode afficherChrono() -
* Permet d'afficher les temps d'éxécution de différentes parties d'un script.
/** Méthode afficherChrono() -
* Permet d'afficher les temps d'éxécution de différentes parties d'un script.
*
* Cette fonction permet d'afficher un ensemble de
* mesure de temps prises à différents endroits d'un script.
* Ces mesures sont affichées au sein d'un tableau XHTML
* mesure de temps prises à différents endroits d'un script.
* Ces mesures sont affichées au sein d'un tableau XHTML
* dont on peut controler l'indentation des balises.
* Pour un site en production, il suffit d'ajouter un style
* #chrono {display:none;} dans la css. De cette façon,
* #chrono {display:none;} dans la css. De cette façon,
* le tableau ne s'affichera pas. Le webmaster lui pourra
* rajouter sa propre feuille de style affichant le tableau.
* Le développeur initial de cette fonction est Loic d'Anterroches.
* Elle a été modifiée par Jean-Pascal Milcent.
* Le développeur initial de cette fonction est Loic d'Anterroches.
* Elle a été modifiée par Jean-Pascal Milcent.
* Elle utilise une variable gobale : $_CHRONO_
*
* @author Loic d'Anterroches
92,22 → 93,22
* @return string la chaine XHTML de mesure des temps.
*/
public function afficherChrono($indentation_origine = 8, $indentation = 4) {
// Création du chrono de fin
// Création du chrono de fin
$GLOBALS['_SCRIPT_']['chrono']->setTemps(array (
'fin' => microtime()
));
 
// Début création de l'affichage
// Début création de l'affichage
$sortie = str_repeat(' ', $indentation_origine) .
'<table id="chrono" lang="fr" summary="Résultat du
chronométrage du programme affichant la page actuelle.">' . "\n";
'<table id="chrono" lang="fr" summary="Résultat du
chronométrage du programme affichant la page actuelle.">' . "\n";
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))) .
'<caption>Chronométrage</caption>' . "\n";
'<caption>Chronométrage</caption>' . "\n";
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))) .
'<thead>' . "\n";
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 2))) .
'<tr><th>Action</th><th>Temps écoulé (en s.)</th>
<th>Cumul du temps écoulé (en s.)</th></tr>' . "\n";
'<tr><th>Action</th><th>Temps écoulé (en s.)</th>
<th>Cumul du temps écoulé (en s.)</th></tr>' . "\n";
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 1))) .
'</thead>' . "\n";
 
116,11 → 117,11
 
$total_tps_ecoule = 0;
 
// Récupération de la première mesure
// Récupération de la premiére mesure
$tab_depart = & $this->getTemps(0);
list ($usec, $sec) = explode(' ', $tab_depart['depart']);
 
// Ce temps correspond à tps_fin
// Ce temps correspond à tps_fin
$tps_debut = ((float) $usec + (float) $sec);
 
foreach ($this->getTemps() as $tab_temps) {
148,7 → 149,7
'<tfoot>' . "\n";
$sortie .= str_repeat(' ', ($indentation_origine + ($indentation * 2))) .
'<tr>' .
'<th>' . 'Total du temps écoulé (en s.)' . '</th>' .
'<th>' . 'Total du temps écoulé (en s.)' . '</th>' .
'<td colspan="2">' .
number_format($total_tps_ecoule, 3, ',', ' ') . '</td>' .
'</tr>' . "\n";