Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 40 | Rev 74 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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