* @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 */ // TODO : Améliorer la gestion de l'ordre des chemins pour éviter de prendre en compte des chemins inexistants class Osm extends EfloreScript { const PROJET_NOM = 'osm'; protected $parametres_autorises = array( '-f' => array(true, null, 'Chemin du fichier osm à analyser'), '-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 'analyser' : $script = $this->chargerClasse('ParseurOsm'); $script->executer(); break; case 'ordre' : $script = $this->chargerClasse('OrdonneurDeChemins'); $script->executer(); break; case 'polygone' : case 'centre' : case 'zero' : $script = $this->chargerClasse('PolygoneCreateur'); $script->executer(); break; case 'ordonnerPolygoneInc' : case 'remplirPolygoneInc' : case 'renommer' : $script = $this->chargerClasse('PolygoneReparateur'); $script->executer(); break; case 'maj' : $script = $this->chargerClasse('MiseAJour'); $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); } }