Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 65 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
class Outils {
        public static function recupererTableauConfig($param) {
                $tableau = array();
                $tableauPartiel = explode(',', Config::get($param));
                $tableauPartiel = array_map('trim', $tableauPartiel);
                foreach ($tableauPartiel as $champ) {
                        if (strpos($champ, '=') === false) {
                                $tableau[] = $champ;
                        } else {
                                list($cle, $val) = explode('=', $champ);
                                $tableau[$cle] = $val;
                        }
                }
                return $tableau;
        }

        public static function extraireRequetes($cheminFichierSql) {
                $contenu = file_get_contents($cheminFichierSql);
                if ($contenu === false){
                        throw new Exception("Impossible d'ouvrir le fichier SQL : $cheminFichierSql");
                }

                $requetesExtraites = explode(";\n", $contenu);
                if (count($requetesExtraites) == 0){
                        throw new Exception("Aucune requête n'a été trouvée dans le fichier SQL : $cheminFichierSql");
                }

                $requetes = array();
                foreach ($requetesExtraites as $requete) {
                        if (trim($requete) != '') {
                                $requetes[] = $requete;
                        }
                }
                return $requetes;
        }

        /**
        * 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.
        * @return void le message est affiché dans la console.
        */
        public static function afficherAvancement($message, $depart = 0) {
                static $avancement = array();
                if (! array_key_exists($message, $avancement)) {
                        $avancement[$message] = $depart;
                        echo "$message : ";

                        $actuel =& $avancement[$message];
                        echo $actuel++;
                } else {
                        $actuel =& $avancement[$message];

                        // Cas du passage de 99 (= 2 caractères) à 100 (= 3 caractères)
                        $passage = 0;
                        if (strlen((string) ($actuel - 1)) < strlen((string) ($actuel))) {
                                $passage = 1;
                        }

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