20,8 → 20,6 |
private $parametres = array(); |
/** Contients les ressources.*/ |
private $ressources = array(); |
/** Contients les erreurs HTTP levées par le service.*/ |
private $erreursHttp = array(); |
|
/** Nom du projet courrant. */ |
private $projetNom = array(); |
38,14 → 36,16 |
|
public function consulter($ressources, $parametres) { |
$resultat = ''; |
$reponseHttp = new ReponseHttp(); |
try { |
$this->initialiserRessourcesEtParametres($ressources, $parametres); |
$resultat = $this->traiterRessources(); |
$reponseHttp->setResultatService($resultat); |
} catch (Exception $e) { |
$this->ajouterErreurHttp($e->getCode(), $e->getMessage()); |
$reponseHttp->ajouterErreur($e); |
} |
|
$corps = $this->genererReponseHttp($resultat); |
$reponseHttp->emettreLesEntetes(); |
$corps = $reponseHttp->getCorps(); |
return $corps; |
} |
|
147,7 → 147,7 |
|
private function initialiserService() { |
$this->chargerNomDuService(); |
$classe = $this->obtenirNomClasse($this->serviceNom); |
$classe = $this->obtenirNomClasseService($this->serviceNom); |
$chemins = array(); |
$chemins[] = $this->cheminCourrant.$this->projetNom.DS.$classe.'.php'; |
$chemins[] = $this->cheminCourrant.'commun'.DS.$classe.'.php'; |
173,7 → 173,7 |
$this->serviceNom = $this->ressources[1]; |
} |
|
private function obtenirNomClasse($mot) { |
private function obtenirNomClasseService($mot) { |
$classeNom = str_replace(' ', '', ucwords(strtolower(str_replace('-', ' ', $mot)))); |
return $classeNom; |
} |
186,53 → 186,5 |
} |
return $ressourcesPourService; |
} |
|
private function ajouterErreurHttp($entete, $message) { |
$this->erreursHttp[] = array('entete' => $entete, 'message' => $message); |
} |
|
private function etreEnErreurHttp() { |
$enErreur = false; |
if (count($this->erreursHttp) > 0) { |
$enErreur = true; |
} |
return $enErreur; |
} |
|
private function genererReponseHttp($resultat) { |
$this->genererEnteteHttp(); |
$corps = $this->genererCorpsHttp($resultat); |
return $corps; |
} |
|
private function genererEnteteHttp($mime = 'application/json', $encodage= 'utf-8') { |
// Si aucune erreur n'a été établie (donc un tableau de résultat a bien ete renvoyé...) |
if ($this->etreEnErreurHttp()) { |
$this->emettreEntete($this->erreursHttp[0]['entete'], 'text/html', $encodage); |
} else { |
$this->emettreEntete(RestServeur::HTTP_CODE_OK, $mime, $encodage); |
} |
} |
|
private function emettreEntete($entete, $mime, $encodage) { |
// Gestion du type de contenu |
if (!is_null($mime) && !is_null($encodage)) { |
header("Content-Type: $mime; charset=$encodage"); |
} else if (!is_null($mime) && is_null($encodage)) { |
header("Content-Type: $mime"); |
} |
// Envoie de l'entête |
RestServeur::envoyerEnteteStatutHttp($entete); |
} |
|
private function genererCorpsHttp($resultats) { |
$corps = ''; |
if ($this->etreEnErreurHttp()) { |
$corps = $this->erreursHttp[0]['message']; |
} else { |
$corps = json_encode($resultats); |
} |
return $corps; |
} |
} |
?> |