353,9 → 353,10 |
* Execute la requête. |
*/ |
public function executer() { |
$retour = ''; |
switch ($this->methode) { |
case 'GET': |
$this->get(); |
$retour = $this->get(); |
break; |
case 'POST': |
$this->post(); |
364,7 → 365,7 |
$this->delete(); |
break; |
case 'PUT': |
$this->put(); |
$retour = $this->put(); |
break; |
default : |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_METHODE_NON_AUTORISE); |
373,7 → 374,7 |
"Consulter l'entête Allow pour connaître les méthodes autorisées."; |
self::ajouterMessage($e); |
} |
$this->cloreAccesServeur(); |
$this->cloreAccesServeur($retour); |
} |
|
/** |
382,11 → 383,12 |
* database contents. |
*/ |
private function get() { |
$retour = ''; |
if ($this->service != null) { |
$Service = new $this->service(self::$config); |
if (method_exists($Service, self::METHODE_GET)) { |
$methodeGet = self::METHODE_GET; |
$Service->$methodeGet($this->ressources, $this->parametres); |
$retour = $Service->$methodeGet($this->ressources, $this->parametres); |
} else { |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE); |
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_GET."' nécessaire ". |
394,6 → 396,7 |
self::ajouterMessage($e); |
} |
} |
return $retour; |
} |
|
private function post() { |
400,9 → 403,9 |
$paires = $this->parserDonneesRequete(); |
if (count($paires) != 0) { |
if (isset($paires['action']) && $paires['action'] == 'DELETE') {// Altnative à l'utilisation de DELETE |
$this->delete(); |
$retour = $this->delete(); |
} else if (count($this->ressources) == 0) {// Altnative à l'utilisation de PUT |
$this->put(); |
$retour = $this->put(); |
} else { |
if ($this->service != null) { |
$Service = new $this->service(self::$config); |
520,11 → 523,16 |
/** |
* Termine l'accès au serveur après envoir envoyer les messages. |
*/ |
private static function cloreAccesServeur() { |
private static function cloreAccesServeur($retour) { |
// Gestion des exceptions et erreurs générées par les services |
self::gererErreurs(); |
$retour .= self::gererErreurs(); |
|
// Envoie des messages d'erreur et d'avertissement du serveur |
self::envoyerMessages(); |
$retour .= self::envoyerMessages(); |
|
// Envoie sur la sortie standard le contenu de la réponse HTTP |
print $retour; |
|
// Nous terminons le script |
exit(0); |
} |
543,7 → 551,9 |
* - Autre valeur : les messages sont formatés puis retournés par la fonction de débogage (à vous de les afficher). |
*/ |
public static function gererErreurs() { |
$retour = ''; |
if (self::$debogageActivation && GestionnaireException::getExceptionsNbre() > 0) { |
|
$exceptionsTriees = GestionnaireException::getExceptionsTriees(); |
reset($exceptionsTriees); |
$debogageSeulement = true; |
556,9 → 566,9 |
foreach ($exceptionsTriees as $exceptions) { |
foreach ($exceptions as $e) { |
if ($debogageSeulement && self::$debogageMode == Debug::MODE_ENTETE_HTTP) { |
$exceptionsFormatees[] = GestionnaireException::formaterExceptionTxt($e); |
$exceptionsFormatees[] = GestionnaireException::formaterExceptionDebug($e); |
} else { |
echo GestionnaireException::formaterExceptionXhtml($e); |
$retour = GestionnaireException::formaterExceptionXhtml($e); |
} |
} |
} |
567,6 → 577,7 |
header('X_REST_DEBOGAGE_MESSAGES: '.json_encode($exceptionsFormatees)); |
} |
} |
return $retour; |
} |
|
|
588,7 → 599,7 |
private static function envoyerMessages() { |
if (count(self::$messages) > 0) { |
header("Content-Type: text/plain; charset=utf-8"); |
print implode("\n", self::$messages); |
return implode("\n", self::$messages); |
} |
} |
} |