Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 257 | Rev 524 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
163 jpm 1
<?php
2
class Conteneur {
3
	protected $parametres = array();
4
	protected $partages = array();
5
 
6
	public function __construct(array $parametres = null) {
7
		$this->parametres = is_null($parametres) ? array() : $parametres;
8
	}
9
 
10
	public function getParametre($cle) {
11
		$valeur = isset($this->parametres[$cle]) ? $this->parametres[$cle] : Config::get($cle);
12
		return $valeur;
13
	}
14
 
15
	public function getParametreTableau($cle) {
16
		$tableau = array();
17
		$parametre = $this->getParametre($cle);
18
		if (empty($parametre) === false) {
19
			$tableauPartiel = explode(',', $parametre);
20
			$tableauPartiel = array_map('trim', $tableauPartiel);
21
			foreach ($tableauPartiel as $champ) {
22
				if (strpos($champ, '=') === false) {
197 jpm 23
					$tableau[] = trim($champ);
163 jpm 24
				} else {
25
					list($cle, $val) = explode('=', $champ);
197 jpm 26
					$tableau[trim($cle)] = trim($val);
163 jpm 27
				}
28
			}
29
		}
30
		return $tableau;
31
	}
32
 
33
	public function setParametre($cle, $valeur) {
34
		$this->parametres[$cle] = $valeur;
35
	}
36
 
37
	public function getParametresUrl() {
38
		if (!isset($this->partages['Parametres'])){
39
			$this->partages['Parametres'] = new Parametres($this->parametres['parametres'], $this->getBdd());
40
		}
41
		return $this->partages['Parametres'];
42
	}
43
 
44
	public function getParametresUrlVerificateur() {
45
		if (!isset($this->partages['ParametresVerificateur'])){
46
			$parametres = $this->getParametresUrl();
47
			$parametresAPI = $this->getParametreTableau('parametresAPI');
48
			$this->partages['ParametresVerificateur'] = new ParametresVerificateur($parametres, $parametresAPI);
49
		}
50
		return $this->partages['ParametresVerificateur'];
51
	}
52
 
53
	public function getRessourcesUrl() {
54
		if (!isset($this->partages['Ressources'])){
55
			$this->partages['Ressources'] = new Ressources($this->parametres['ressources']);
56
		}
57
		return $this->partages['Ressources'];
58
	}
59
 
60
	public function getRessourcesUrlVerificateur() {
61
		if (!isset($this->partages['RessourcesVerificateur'])){
62
			$ressources = $this->getRessourcesUrl();
63
			$projetsDispo = $this->getParametreTableau('projetsDispo');
64
			$servicesDispo = $this->getParametreTableau('servicesDispo');
65
			$this->partages['RessourcesVerificateur'] = new RessourcesVerificateur($ressources, $projetsDispo, $servicesDispo);
66
		}
67
		return $this->partages['RessourcesVerificateur'];
68
	}
69
 
216 jpm 70
	public function getVersionVerificateur() {
71
		if (!isset($this->partages['VersionVerificateur'])){
72
			$ressources = $this->getRessourcesUrl();
73
			$parametres = $this->getParametresUrl();
74
			$versions = $this->getVersions();
75
			$this->partages['VersionVerificateur'] = new VersionVerificateur($ressources, $parametres, $versions);
76
		}
77
		return $this->partages['VersionVerificateur'];
78
	}
79
 
215 jpm 80
	public function getBdd() {
81
		if (!isset($this->partages['Bdd'])){
82
			$this->partages['Bdd'] = new Bdd();
83
		}
84
		return $this->partages['Bdd'];
85
	}
86
 
257 jpm 87
	public function getCacheSimple($options = array()) {
88
		$cache = new CacheSimple($options);
89
		return $cache;
90
	}
91
 
215 jpm 92
	public function getVersions() {
93
		if (!isset($this->partages['Versions'])){
94
			$parametres = $this->getParametresUrl();
95
			$ressources = $this->getRessourcesUrl();
96
			$bdd = $this->getBdd();
97
			$versions = new Versions($parametres, $ressources, $bdd);
98
			$this->partages['Versions'] = $versions;
99
		}
100
		return $this->partages['Versions'];
101
	}
102
 
163 jpm 103
	public function getProjet() {
104
		if (!isset($this->partages['Projet'])){
105
			$ressources = $this->getRessourcesUrl();
106
			$projet = new Projet($ressources);
107
			$projet->setCheminBase($this->getParametre('cheminBase'));
108
			$projet->setCheminConfig($this->getParametre('chemin_configurations'));
109
			$projet->setCheminBiblio($this->getParametre('chemin_bibliotheque'));
110
			$projet->initialiser();
111
			$projet->setParamsVerif($this->getParametresUrlVerificateur());
112
			$projet->setRessourcesVerif($this->getRessourcesUrlVerificateur());
216 jpm 113
			$projet->setVersionVerif($this->getVersionVerificateur());
215 jpm 114
			$projet->setServiceGenerique($this->getServiceGenerique());
163 jpm 115
			$this->partages['Projet'] = $projet;
116
		}
117
		return $this->partages['Projet'];
118
	}
119
 
208 jpm 120
	public function getNomDao() {
121
		$ressources = $this->getRessourcesUrl();
122
		$parametres = $this->getParametresUrl();
123
		$bdd = $this->getBdd();
124
		$versions = $this->getVersions();
215 jpm 125
		$nomDao = new NomDAO($ressources, $parametres, $bdd, $versions);
208 jpm 126
		return $nomDao;
127
	}
128
 
231 jpm 129
	public function getOntologiesDao() {
130
		$ressources = $this->getRessourcesUrl();
131
		$parametres = $this->getParametresUrl();
132
		$bdd = $this->getBdd();
133
		$versions = $this->getVersions();
134
		$ontologieDao = new OntologieDAO($ressources, $parametres, $bdd, $versions);
135
		return $ontologieDao;
136
	}
137
 
208 jpm 138
	public function getNomFormateur() {
139
		$formateur = new NomFormateur();
140
		$formateur->setBdd($this->getBdd());
141
		$formateur->setChampsProjet($this->getParametreTableau('champsProjet'));
142
		$formateur->setDetailsHrefTpl($this->getParametre('detailsHrefTpl'));
143
		$formateur->setOntologieHrefTpl($this->getParametre('ontologieHrefTpl'));
144
		return $formateur;
145
	}
146
 
231 jpm 147
	public function getOntologiesFormateur() {
148
		$formateur = new OntologieFormateur();
149
		$formateur->setBdd($this->getBdd());
150
		$formateur->setChampsProjet($this->getParametreTableau('champsProjet'));
151
		$formateur->setDetailsHrefTpl($this->getParametre('detailsHrefOntologiesTpl'));
152
		$formateur->setLangueDemandee($this->getParametresUrl()->get('retour.langue'));
153
		return $formateur;
154
	}
155
 
274 jpm 156
	public function getWikipediaBot($options = array()) {
157
		$wpBot = new WikipediaBot($options);
158
		return $wpBot;
159
	}
160
 
161
	public function getUrl($url) {
162
		$url = new Url($url);
163
		return $url;
164
	}
165
 
215 jpm 166
	public function getServiceGenerique() {
231 jpm 167
		$ressources = $this->getRessourcesUrl();
168
		$classe = $ressources->getServiceClasse();
215 jpm 169
		$classeGenerique = $classe.'Generique';
231 jpm 170
		if ($ressources->getServiceNom() == 'noms' || $ressources->getServiceNom() == 'taxons') {
171
			$service = new $classeGenerique($this->getRessourcesUrl(), $this->getParametresUrl(), $this->getNomDao(), $this->getNomFormateur());
172
			if ($classe == 'NomsListe') {
173
				$service->setListeUrl($this->getParametre('listeUrl'));
174
			}
175
		} else if ($ressources->getServiceNom() == 'ontologies') {
176
			$service = new $classeGenerique($this->getRessourcesUrl(), $this->getParametresUrl(), $this->getOntologiesDao(), $this->getOntologiesFormateur());
177
			if ($classe == 'OntologiesListe') {
178
				$service->setListeUrl($this->getParametre('listeUrlOntologies'));
179
			}
163 jpm 180
		}
231 jpm 181
 
163 jpm 182
		return $service;
183
	}
184
}
185
?>