Subversion Repositories eFlore/Applications.cel

Rev

Rev 1230 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1230 jpm 1
<?php
2
/**
3
 * La classe fournissant des méthodes communes aux scripts.
4
 *
5
 * @category php 5.2
6
 * @package cel
7
 * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
8
 * @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
9
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
11
 * @version	$Id$
12
 */
13
class Script {
14
 
15
	private static $avancement = array();
16
 
17
	/**
18
	 * Utiliser cette méthode dans une boucle pour afficher un message suivi du nombre de tour de boucle effectué.
19
	 * Vous devrez vous même gérer le retour à la ligne à la sortie de la boucle.
20
	 *
21
	 * @param string le message d'information.
22
	 * @param int le nombre de départ à afficher. Par défaut 0.
23
	 * @return void le message est affiché dans la console.
24
	 */
25
	public function afficherAvancement($message, $depart = 0) {
26
		if (! isset(self::$avancement[$message])) {
27
			self::$avancement[$message] = $depart;
28
			print "$message : ";
29
 
30
			$actuel =& self::$avancement[$message];
31
			print $actuel++;
32
		} else {
33
			$actuel =& self::$avancement[$message];
34
			// Cas du passage de 99 (= 2 caractères) à 100 (= 3 caractères)
35
			$passage = (strlen((string) ($actuel - 1)) < strlen((string) ($actuel))) ? 1 : 0;
36
 
37
			print str_repeat(chr(8), (strlen((string) $actuel) - $passage));
38
			print $actuel++;
39
		}
40
	}
41
}
42
?>