Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 36 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
33 jpm 1
<?php
2
/** Exemple lancement:
3
 * /opt/lampp/bin/php -d memory_limit=3500M ~/web/eflore-projets/scripts/cli.php nvjfl
4
 * 		-a chargerTous
5
 * Options :
6
 * -t : Permet de tester le script sur un jeux réduit de données (indiquer le nombre de lignes).
7
*/
8
class InseeD extends Script {
9
 
10
	private $bdd = null;
11
	private $projetNom = 'insee-d';
12
 
13
	protected $parametres_autorises = array(
14
		'-t' => array(false, true, 'Permet de tester le script sur un jeux réduit de données (indiquer le nombre de lignes).'));
15
 
16
	public function executer() {
17
		// Lancement de l'action demandée
18
		try {
19
			$this->chargerConfigDuProjet();
20
			$this->bdd = new Bdd();
21
 
22
			$cmd = $this->getParametre('a');
23
		    switch ($cmd) {
24
		    	case 'chargerTous' :
25
		    		$this->chargerStructureSql();
26
		    		$this->chargerInseeD();
27
		    		$this->chargerOntologies();
28
		    		break;
29
	    		case 'chargerStructureSql' :
30
	    			$this->chargerStructureSql();
31
	    			break;
32
				case 'chargerInseeD' :
33
					$this->chargerInseeD();
34
					break;
35
				case 'chargerOntologies' :
36
					$this->chargerOntologies();
37
					break;
38
				default :
39
					$this->traiterErreur('Erreur : la commande "%s" n\'existe pas!', array($cmd));
40
			}
41
		} catch (Exception $e) {
42
			$this->traiterErreur($e->getMessage());
43
		}
44
    }
45
 
46
    private function chargerConfigDuProjet() {
47
    	$fichierIni = dirname(__FILE__).DS.$this->projetNom.'.ini';
48
    	if (file_exists($fichierIni)) {
49
    		Config::charger($fichierIni);
50
    	} else {
51
    		$m = "Veuillez configurer le projet en créant le fichier '{$this->projetNom}.ini' ".
52
    			"dans le dossier du module de script du projet à partir du fichier '{$this->projetNom}.defaut.ini'.";
53
    		throw new Exception($m);
54
    	}
55
    }
56
 
57
    private function chargerStructureSql() {
58
    	$chemin = Config::get('chemins.structureSql');
59
    	$requete = "SOURCE $chemin ";
60
    	$this->bdd->requeter($requete);
61
    }
62
 
63
	private function chargerInseeD() {
64
		$chemin = Config::get('chemins.inseeD');
65
		$table = Config::get('tables.inseeD');
66
		$requete = "LOAD DATA INFILE '$chemin' ".
67
			"REPLACE INTO TABLE $table ".
68
			'CHARACTER SET utf8 '.
69
			'FIELDS '.
70
			"	TERMINATED BY ';' ".
71
			"	ENCLOSED BY '\"' ".
72
			"	ESCAPED BY '\\\' ".
73
			'IGNORE 0 LINES';
74
		$this->bdd->requeter($requete);
75
	}
76
 
77
	private function chargerOntologies() {
78
		$chemin = Config::get('chemins.ontologies');
79
		$table = Config::get('tables.ontologies');
80
		$requete = "LOAD DATA INFILE '$chemin' ".
81
			"REPLACE INTO TABLE $table ".
82
			'CHARACTER SET utf8 '.
83
			'FIELDS '.
84
			"	TERMINATED BY '\t' ".
85
			"	ENCLOSED BY '' ".
86
			"	ESCAPED BY '\\\' ".
87
			'IGNORE 1 LINES';
88
		$this->bdd->requeter($requete);
89
	}
90
}
91
?>