| Line 380... |
Line 380... |
| 380 |
* Execute a GET request. A GET request fetches a list of resource when no resource name is given, a list of element
|
380 |
* Execute a GET request. A GET request fetches a list of resource when no resource name is given, a list of element
|
| 381 |
* when a resource name is given, or a resource element when a resource and resource unique identifier are given. It does not change the
|
381 |
* when a resource name is given, or a resource element when a resource and resource unique identifier are given. It does not change the
|
| 382 |
* database contents.
|
382 |
* database contents.
|
| 383 |
*/
|
383 |
*/
|
| 384 |
private function get() {
|
384 |
private function get() {
|
| - |
|
385 |
$retour = '';
|
| 385 |
if ($this->service != null) {
|
386 |
if ($this->service != null) {
|
| 386 |
$Service = new $this->service(self::$config);
|
387 |
$Service = new $this->service(self::$config);
|
| 387 |
if (method_exists($Service, self::METHODE_GET)) {
|
388 |
if (method_exists($Service, self::METHODE_GET)) {
|
| 388 |
$methodeGet = self::METHODE_GET;
|
389 |
$methodeGet = self::METHODE_GET;
|
| 389 |
$Service->$methodeGet($this->ressources, $this->parametres);
|
390 |
$retour = $Service->$methodeGet($this->ressources, $this->parametres);
|
| 390 |
} else {
|
391 |
} else {
|
| 391 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
392 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
| 392 |
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_GET."' nécessaire ".
|
393 |
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_GET."' nécessaire ".
|
| 393 |
"lors de l'appel du service via la méthode HTTP GET.";
|
394 |
"lors de l'appel du service via la méthode HTTP GET.";
|
| 394 |
self::ajouterMessage($e);
|
395 |
self::ajouterMessage($e);
|
| 395 |
}
|
396 |
}
|
| 396 |
}
|
397 |
}
|
| - |
|
398 |
return $retour;
|
| 397 |
}
|
399 |
}
|
| Line 398... |
Line 400... |
| 398 |
|
400 |
|
| 399 |
private function post() {
|
401 |
private function post() {
|
| 400 |
$paires = $this->parserDonneesRequete();
|
402 |
$paires = $this->parserDonneesRequete();
|
| Line 427... |
Line 429... |
| 427 |
self::ajouterMessage($e);
|
429 |
self::ajouterMessage($e);
|
| 428 |
}
|
430 |
}
|
| 429 |
}
|
431 |
}
|
| Line 430... |
Line 432... |
| 430 |
|
432 |
|
| - |
|
433 |
private function put() {
|
| 431 |
private function put() {
|
434 |
$retour = '';
|
| 432 |
$paires = $this->parserDonneesRequete();
|
435 |
$paires = $this->parserDonneesRequete();
|
| 433 |
if (count($paires) != 0) {
|
436 |
if (count($paires) != 0) {
|
| 434 |
if ($this->service != null) {
|
437 |
if ($this->service != null) {
|
| 435 |
$Service = new $this->service(self::$config);
|
438 |
$Service = new $this->service(self::$config);
|
| 436 |
if (method_exists($Service, self::METHODE_PUT)) {
|
439 |
if (method_exists($Service, self::METHODE_PUT)) {
|
| 437 |
$methodePut = self::METHODE_PUT;
|
440 |
$methodePut = self::METHODE_PUT;
|
| 438 |
$info = $Service->$methodePut($this->ressources, $paires);
|
441 |
$retour = $Service->$methodePut($this->ressources, $paires);
|
| 439 |
if ($info === true) {
|
442 |
if ($retour !== false) {
|
| 440 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CREATION_OK);
|
443 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CREATION_OK);
|
| 441 |
}
|
444 |
}
|
| 442 |
} else {
|
445 |
} else {
|
| 443 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
446 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
| Line 449... |
Line 452... |
| 449 |
} else {
|
452 |
} else {
|
| 450 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CONTENU_REQUIS);
|
453 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CONTENU_REQUIS);
|
| 451 |
$e = "Il est nécessaire de fournir du contenu dans le corps de la requête pour créer une nouvelle ressource.";
|
454 |
$e = "Il est nécessaire de fournir du contenu dans le corps de la requête pour créer une nouvelle ressource.";
|
| 452 |
self::ajouterMessage($e);
|
455 |
self::ajouterMessage($e);
|
| 453 |
}
|
456 |
}
|
| - |
|
457 |
return $retour;
|
| 454 |
}
|
458 |
}
|
| Line 455... |
Line 459... |
| 455 |
|
459 |
|
| 456 |
private function delete() {
|
460 |
private function delete() {
|
| 457 |
if (count($this->ressources) != 0) {
|
461 |
if (count($this->ressources) != 0) {
|
| Line 518... |
Line 522... |
| 518 |
}
|
522 |
}
|
| Line 519... |
Line 523... |
| 519 |
|
523 |
|
| 520 |
/**
|
524 |
/**
|
| 521 |
* Termine l'accès au serveur après envoir envoyer les messages.
|
525 |
* Termine l'accès au serveur après envoir envoyer les messages.
|
| 522 |
*/
|
526 |
*/
|
| 523 |
private static function cloreAccesServeur() {
|
527 |
private static function cloreAccesServeur($retour) {
|
| 524 |
// Gestion des exceptions et erreurs générées par les services
|
528 |
// Gestion des exceptions et erreurs générées par les services
|
| - |
|
529 |
$retour .= self::gererErreurs();
|
| 525 |
self::gererErreurs();
|
530 |
|
| 526 |
// Envoie des messages d'erreur et d'avertissement du serveur
|
531 |
// Envoie des messages d'erreur et d'avertissement du serveur
|
| - |
|
532 |
$retour .= self::envoyerMessages();
|
| - |
|
533 |
|
| - |
|
534 |
// Envoie sur la sortie standard le contenu de la réponse HTTP
|
| - |
|
535 |
print $retour;
|
| 527 |
self::envoyerMessages();
|
536 |
|
| 528 |
// Nous terminons le script
|
537 |
// Nous terminons le script
|
| 529 |
exit(0);
|
538 |
exit(0);
|
| Line 530... |
Line 539... |
| 530 |
}
|
539 |
}
|
| Line 541... |
Line 550... |
| 541 |
* - Debug::MODE_ENTETE_HTTP : les message sont stockés par le gestionnaire d'exception sous forme d'erreur de type
|
550 |
* - Debug::MODE_ENTETE_HTTP : les message sont stockés par le gestionnaire d'exception sous forme d'erreur de type
|
| 542 |
* E_USER_NOTICE et sont renvoyés dans un entête HTTP (X_REST_DEBOGAGE_MESSAGES) à la fin de l'execution du programme.
|
551 |
* E_USER_NOTICE et sont renvoyés dans un entête HTTP (X_REST_DEBOGAGE_MESSAGES) à la fin de l'execution du programme.
|
| 543 |
* - Autre valeur : les messages sont formatés puis retournés par la fonction de débogage (à vous de les afficher).
|
552 |
* - Autre valeur : les messages sont formatés puis retournés par la fonction de débogage (à vous de les afficher).
|
| 544 |
*/
|
553 |
*/
|
| 545 |
public static function gererErreurs() {
|
554 |
public static function gererErreurs() {
|
| - |
|
555 |
$retour = '';
|
| 546 |
if (self::$debogageActivation && GestionnaireException::getExceptionsNbre() > 0) {
|
556 |
if (self::$debogageActivation && GestionnaireException::getExceptionsNbre() > 0) {
|
| - |
|
557 |
|
| 547 |
$exceptionsTriees = GestionnaireException::getExceptionsTriees();
|
558 |
$exceptionsTriees = GestionnaireException::getExceptionsTriees();
|
| 548 |
reset($exceptionsTriees);
|
559 |
reset($exceptionsTriees);
|
| 549 |
$debogageSeulement = true;
|
560 |
$debogageSeulement = true;
|
| 550 |
if (array_key_exists(E_USER_ERROR, $exceptionsTriees)) {
|
561 |
if (array_key_exists(E_USER_ERROR, $exceptionsTriees)) {
|
| 551 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_ERREUR);
|
562 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_ERREUR);
|
| Line 554... |
Line 565... |
| 554 |
|
565 |
|
| 555 |
$exceptionsFormatees = array();
|
566 |
$exceptionsFormatees = array();
|
| 556 |
foreach ($exceptionsTriees as $exceptions) {
|
567 |
foreach ($exceptionsTriees as $exceptions) {
|
| 557 |
foreach ($exceptions as $e) {
|
568 |
foreach ($exceptions as $e) {
|
| 558 |
if ($debogageSeulement && self::$debogageMode == Debug::MODE_ENTETE_HTTP) {
|
569 |
if ($debogageSeulement && self::$debogageMode == Debug::MODE_ENTETE_HTTP) {
|
| 559 |
$exceptionsFormatees[] = GestionnaireException::formaterExceptionTxt($e);
|
570 |
$exceptionsFormatees[] = GestionnaireException::formaterExceptionDebug($e);
|
| 560 |
} else {
|
571 |
} else {
|
| 561 |
echo GestionnaireException::formaterExceptionXhtml($e);
|
572 |
$retour = GestionnaireException::formaterExceptionXhtml($e);
|
| 562 |
}
|
573 |
}
|
| 563 |
}
|
574 |
}
|
| Line 564... |
Line 575... |
| 564 |
}
|
575 |
}
|
| 565 |
|
576 |
|
| 566 |
if ($debogageSeulement && self::$debogageMode == Debug::MODE_ENTETE_HTTP) {
|
577 |
if ($debogageSeulement && self::$debogageMode == Debug::MODE_ENTETE_HTTP) {
|
| 567 |
header('X_REST_DEBOGAGE_MESSAGES: '.json_encode($exceptionsFormatees));
|
578 |
header('X_REST_DEBOGAGE_MESSAGES: '.json_encode($exceptionsFormatees));
|
| - |
|
579 |
}
|
| 568 |
}
|
580 |
}
|
| Line 569... |
Line 581... |
| 569 |
}
|
581 |
return $retour;
|
| 570 |
}
|
582 |
}
|
| Line 586... |
Line 598... |
| 586 |
* Le format d'envoie est text/plain encodé en UTF-8.
|
598 |
* Le format d'envoie est text/plain encodé en UTF-8.
|
| 587 |
*/
|
599 |
*/
|
| 588 |
private static function envoyerMessages() {
|
600 |
private static function envoyerMessages() {
|
| 589 |
if (count(self::$messages) > 0) {
|
601 |
if (count(self::$messages) > 0) {
|
| 590 |
header("Content-Type: text/plain; charset=utf-8");
|
602 |
header("Content-Type: text/plain; charset=utf-8");
|
| 591 |
print implode("\n", self::$messages);
|
603 |
return implode("\n", self::$messages);
|
| 592 |
}
|
604 |
}
|
| 593 |
}
|
605 |
}
|
| 594 |
}
|
606 |
}
|
| 595 |
?>
|
607 |
?>
|
| 596 |
|
608 |
|