Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

<?php
//declare(encoding='UTF-8');
/**
 * Exemple de lancement du script : :
 * 1. Création de la base de données :
 * /opt/lampp/bin/php cli.php osm -a communes -m manuel -v 3
 *
 * @category    php 5.4
 * @package             DEL
 * @subpackage  Scripts
 * @author              Aurélien PERONNET <aurelien@tela-botanica.org>
 * @copyright   Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
* @license              CeCILL v2 http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt
 * @license             GNU-GPL http://www.gnu.org/licenses/gpl.html
 */
class Osm extends EfloreScript {

        const PROJET_NOM = 'osm';

        protected $parametres_autorises = array(
                '-m' => array(false, 'auto', 'Mode «auto» ou «manuel». En manuel, les compteurs dans les boucles sont affichés.'));

        public function executer() {
                try {
                        $this->initialiserProjet(self::PROJET_NOM);

                        // Lancement de l'action demandée
                        $cmd = $this->getParametre('a');
                        switch ($cmd) {
                                case 'chargerStructureSql' :
                                        $this->chargerStructureSql();
                                        break;
                                case 'cm' :
                                case 'cmCreer' :
                                case 'cmSupprimer' :
                                        $script = $this->chargerClasse('FranceCommunes');
                                        $script->executer();
                                        break;
                                case 'za' :
                                case 'zaCreer' :
                                case 'zaCorriger' :
                                case 'zaMajIdZG' :
                                case 'zaSupprimer' :
                                        $script = $this->chargerClasse('ZonesAdmin');
                                        $script->executer();
                                        break;
                                default :
                                        throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
                        }
                } catch (Exception $e) {
                        $this->traiterErreur($e->getMessage());
                }
                print "\n";// Pour ramener à la ligne en fin de script
        }

        protected function initialiserProjet($projetNom) {
                $this->projetNom = $projetNom;
        }

        private function chargerClasse($classe) {
                require_once $classe.'.php';
                $conteneur = new Conteneur($this->parametres);
                return new $classe($conteneur);
        }
}