Subversion Repositories eFlore/Applications.cel

Rev

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

<?php
/**
 * La classe fournissant des méthodes communes aux scripts.
 *
 * @category php 5.2
 * @package cel
 * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
 * @license     http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
 * @license     http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
 * @version     $Id$
 */
class Script {

        private static $avancement = array();

        /**
         * Utiliser cette méthode dans une boucle pour afficher un message suivi du nombre de tour de boucle effectué.
         * Vous devrez vous même gérer le retour à la ligne à la sortie de la boucle.
         *
         * @param string le message d'information.
         * @param int le nombre de départ à afficher. Par défaut 0.
         * @return void le message est affiché dans la console.
         */
        public function afficherAvancement($message, $depart = 0) {
                if (! isset(self::$avancement[$message])) {
                        self::$avancement[$message] = $depart;
                        print "$message : ";

                        $actuel =& self::$avancement[$message];
                        print $actuel++;
                } else {
                        $actuel =& self::$avancement[$message];
                        // Cas du passage de 99 (= 2 caractères) à 100 (= 3 caractères)
                        $passage = (strlen((string) ($actuel - 1)) < strlen((string) ($actuel))) ? 1 : 0;

                        print str_repeat(chr(8), (strlen((string) $actuel) - $passage));
                        print $actuel++;
                }
        }
}
?>