parametres = is_null($parametres) ? array() : $parametres; } public function getParametre($cle) { $valeur = isset($this->parametres[$cle]) ? $this->parametres[$cle] : Config::get($cle); return $valeur; } public function getParametreTableau($cle) { $tableau = array(); $parametre = $this->getParametre($cle); if (empty($parametre) === false) { $tableauPartiel = explode(',', $parametre); $tableauPartiel = array_map('trim', $tableauPartiel); foreach ($tableauPartiel as $champ) { if (strpos($champ, '=') === false) { $tableau[] = trim($champ); } else { list($cle, $val) = explode('=', $champ); $tableau[trim($cle)] = trim($val); } } } return $tableau; } public function setParametre($cle, $valeur) { $this->parametres[$cle] = $valeur; } public function getParametresUrl() { if (!isset($this->partages['Parametres'])){ $this->partages['Parametres'] = new Parametres($this->parametres['parametres'], $this->getBdd()); } return $this->partages['Parametres']; } public function getParametresUrlVerificateur() { if (!isset($this->partages['ParametresVerificateur'])){ $parametres = $this->getParametresUrl(); $parametresAPI = $this->getParametreTableau('parametresAPI'); $this->partages['ParametresVerificateur'] = new ParametresVerificateur($parametres, $parametresAPI); } return $this->partages['ParametresVerificateur']; } public function getRessourcesUrl() { if (!isset($this->partages['Ressources'])){ $this->partages['Ressources'] = new Ressources($this->parametres['ressources']); } return $this->partages['Ressources']; } public function getRessourcesUrlVerificateur() { if (!isset($this->partages['RessourcesVerificateur'])){ $ressources = $this->getRessourcesUrl(); $projetsDispo = $this->getParametreTableau('projetsDispo'); $servicesDispo = $this->getParametreTableau('servicesDispo'); $this->partages['RessourcesVerificateur'] = new RessourcesVerificateur($ressources, $projetsDispo, $servicesDispo); } return $this->partages['RessourcesVerificateur']; } public function getUrlFormatage() { if (!isset($this->partages['UrlFormatage'])){ $Bdd = $this->getBdd(); $this->partages['UrlFormatage'] = new UrlFormatage($Bdd); } return $this->partages['UrlFormatage']; } public function getRequetesAssemblage() { if (!isset($this->partages['RequetesAssemblage'])){ $this->partages['RequetesAssemblage'] = new RequetesAssemblage($this->getBdd()); } return $this->partages['RequetesAssemblage']; } public function getVersionVerificateur() { if (!isset($this->partages['VersionVerificateur'])){ $ressources = $this->getRessourcesUrl(); $parametres = $this->getParametresUrl(); $versions = $this->getVersions(); $this->partages['VersionVerificateur'] = new VersionVerificateur($ressources, $parametres, $versions); } return $this->partages['VersionVerificateur']; } public function getBdd() { if (!isset($this->partages['Bdd'])){ $this->partages['Bdd'] = new Bdd(); } return $this->partages['Bdd']; } public function getCacheSimple($options = array()) { $cache = new CacheSimple($options); return $cache; } public function getVersions() { if (!isset($this->partages['Versions'])){ $parametres = $this->getParametresUrl(); $ressources = $this->getRessourcesUrl(); $bdd = $this->getBdd(); $versions = new Versions($parametres, $bdd); $this->partages['Versions'] = $versions; } return $this->partages['Versions']; } public function getProjet() { if (!isset($this->partages['Projet'])){ $ressources = $this->getRessourcesUrl(); $projet = new Projet($ressources); $projet->setCheminBase($this->getParametre('cheminBase')); $projet->setCheminConfig($this->getParametre('chemin_configurations')); $projet->setCheminBiblio($this->getParametre('chemin_bibliotheque')); $projet->initialiser(); $projet->setParamsVerif($this->getParametresUrlVerificateur()); $projet->setRessourcesVerif($this->getRessourcesUrlVerificateur()); $projet->setVersionVerif($this->getVersionVerificateur()); $projet->setServiceGenerique($this->getServiceGenerique()); $this->partages['Projet'] = $projet; } return $this->partages['Projet']; } public function getNomDao() { $ressources = $this->getRessourcesUrl(); $parametres = $this->getParametresUrl(); $bdd = $this->getBdd(); $versions = $this->getVersions(); $nomDao = new NomDAO($ressources, $parametres, $bdd, $versions); return $nomDao; } public function getOntologiesDao() { $ressources = $this->getRessourcesUrl(); $parametres = $this->getParametresUrl(); $bdd = $this->getBdd(); $versions = $this->getVersions(); $ontologieDao = new OntologieDAO($ressources, $parametres, $bdd, $versions); return $ontologieDao; } public function getNomFormateur() { $formateur = new NomFormateur(); $formateur->setBdd($this->getBdd()); $formateur->setChampsProjet($this->getParametreTableau('champsProjet')); $formateur->setDetailsHrefTpl($this->getParametre('detailsHrefTpl')); $formateur->setOntologieHrefTpl($this->getParametre('ontologieHrefTpl')); return $formateur; } public function getOntologiesFormateur() { $formateur = new OntologieFormateur(); $formateur->setBdd($this->getBdd()); $formateur->setChampsProjet($this->getParametreTableau('champsProjet')); $formateur->setDetailsHrefTpl($this->getParametre('detailsHrefOntologiesTpl')); $formateur->setLangueDemandee($this->getParametresUrl()->get('retour.langue')); return $formateur; } public function getWikipediaBot($options = array()) { $wpBot = new WikipediaBot($options); return $wpBot; } public function getUrl($url) { $url = new Url($url); return $url; } public function getServiceGenerique() { $ressources = $this->getRessourcesUrl(); $classe = $ressources->getServiceClasse(); $classeGenerique = $classe.'Generique'; if ($ressources->getServiceNom() == 'noms' || $ressources->getServiceNom() == 'taxons') { $service = new $classeGenerique($this->getRessourcesUrl(), $this->getParametresUrl(), $this->getNomDao(), $this->getNomFormateur()); if ($classe == 'NomsListe') { $service->setListeUrl($this->getParametre('listeUrl')); } } else if ($ressources->getServiceNom() == 'ontologies') { $service = new $classeGenerique($this->getRessourcesUrl(), $this->getParametresUrl(), $this->getOntologiesDao(), $this->getOntologiesFormateur()); if ($classe == 'OntologiesListe') { $service->setListeUrl($this->getParametre('listeUrlOntologies')); } } return $service; } } ?>