Subversion Repositories Applications.framework

Rev

Rev 287 | Rev 360 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 287 Rev 299
1
<?php
1
<?php
2
/**
2
/**
3
 * Classe principale gérant les services.
3
 * Classe principale gérant les services.
4
 * Paramètres liés dans config.ini :
4
 * Paramètres liés dans config.ini :
5
 *  - serveur.baseURL
5
 *  - serveur.baseURL
6
 * 
6
 * 
7
 * Encodage en entrée : utf8
7
 * Encodage en entrée : utf8
8
 * Encodage en sortie : utf8
8
 * Encodage en sortie : utf8
9
 * 
9
 * 
10
 * @category	Php 5.2
10
 * @category	Php 5.2
11
 * @package	Framework
11
 * @package	Framework
12
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
12
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
13
 * @copyright	Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
13
 * @copyright	Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
14
 * @license	GPL v3 <http://www.gnu.org/licenses/gpl.txt>
14
 * @license	GPL v3 <http://www.gnu.org/licenses/gpl.txt>
15
 * @license	CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
15
 * @license	CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
16
 * @since 		0.3
16
 * @since 		0.3
17
 * @version	$Id$
17
 * @version	$Id: RestService.php 299 2011-01-18 14:03:46Z jpm $
18
 * @link		/doc/framework/
18
 * @link		/doc/framework/
19
 */
19
 */
20
abstract class RestService {
20
abstract class RestService {
21
	
21
	
22
	/** Objet de connection à la base de données. */
22
	/** Objet de connection à la base de données. */
23
	protected $bdd;
23
	protected $bdd;
24
	
24
	
25
	public function __construct($config) {
25
	public function __construct($config) {
26
		$this->config = $config;
26
		$this->config = $config;
27
		
27
		
28
		// Connection à la base de données
28
		// Connection à la base de données
29
		$this->bdd = new Bdd();
29
		$this->bdd = new Bdd();
30
	}
30
	}
31
	
31
	
32
	/**
32
	/**
33
	 * Méthode appelée lors d'une requête HTTP de type GET.
33
	 * Méthode appelée lors d'une requête HTTP de type GET.
34
	 * 
34
	 * 
35
	 * Si la consultation est un succès, le code statut HTTP retourné devrait être 200.
35
	 * Si la consultation est un succès, le code statut HTTP retourné devrait être 200.
36
	 * 
36
	 * 
37
	 * @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
37
	 * @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
38
	 * @param array Partie de l'url situé après le '?' servant à paramétrer le service demandé.
38
	 * @param array Partie de l'url situé après le '?' servant à paramétrer le service demandé.
39
	 * @return string une chaine indiquant le succès de l'opération et les données demandées.
39
	 * @return string une chaine indiquant le succès de l'opération et les données demandées.
40
	 */
40
	 */
41
	public function consulter($ressources, $parametres) {
41
	public function consulter($ressources, $parametres) {
42
		RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
42
		RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
43
		echo "Le service '".get_class($this)."' n'autorise pas la consultation.";
43
		echo "Le service '".get_class($this)."' n'autorise pas la consultation.";
44
	}
44
	}
45
	
45
	
46
	/**
46
	/**
47
	 * Méthode appelée lors d'une requête HTTP de type POST.
47
	 * Méthode appelée lors d'une requête HTTP de type POST.
48
	 * 
48
	 * 
49
	 * La ressource à modifier est indiquée via l'url. Les données devant servir à la mise à jours sont passées dans le corps
49
	 * La ressource à modifier est indiquée via l'url. Les données devant servir à la mise à jours sont passées dans le corps
50
	 * de la requête.
50
	 * de la requête.
51
	 * Si la modification est un succès, le code statut HTTP retourné devrait être 201.
51
	 * Si la modification est un succès, le code statut HTTP retourné devrait être 201.
52
	 * 
52
	 * 
53
	 * @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
53
	 * @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
54
	 * @param array les données transférées dans le corps de la requête devant servir à la modification.
54
	 * @param array les données transférées dans le corps de la requête devant servir à la modification.
55
	 * @return mixed une chaine indiquant le succès de l'opération ou rien.
55
	 * @return mixed une chaine indiquant le succès de l'opération ou rien.
56
	 */
56
	 */
57
	public function modifier($ressources, $requeteDonnees) {
57
	public function modifier($ressources, $requeteDonnees) {
58
		RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
58
		RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
59
		echo "Le service '".get_class($this)."' n'autorise pas la modification.";
59
		echo "Le service '".get_class($this)."' n'autorise pas la modification.";
60
	}
60
	}
61
	
61
	
62
	/**
62
	/**
63
	 * Méthode appelée lors d'une requête HTTP de type PUT.
63
	 * Méthode appelée lors d'une requête HTTP de type PUT.
64
	 *
64
	 *
65
	 * L'identifiant de la ressource à ajouter est indiqué via l'url si on le connait par avance. Sinon, il doit être créé par 
65
	 * L'identifiant de la ressource à ajouter est indiqué via l'url si on le connait par avance. Sinon, il doit être créé par 
66
	 * le service. Dans ce dernier cas, le nouvel identifiant devrait être renvoyé dans le corps de la réponse.
66
	 * le service. Dans ce dernier cas, le nouvel identifiant devrait être renvoyé dans le corps de la réponse.
67
	 * Si l'ajout est un succès, le code statut HTTP retourné devrait être 201.
67
	 * Si l'ajout est un succès, le code statut HTTP retourné devrait être 201.
68
	 * 
68
	 * 
69
	 * @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
69
	 * @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
70
	 * @param array les données transférées dans le corps de la requête devant servir à l'ajout.
70
	 * @param array les données transférées dans le corps de la requête devant servir à l'ajout.
71
	 * @return string l'identifiant créé.
71
	 * @return string l'identifiant créé.
72
	 */
72
	 */
73
	public function ajouter($ressources, $requeteDonnees) {
73
	public function ajouter($ressources, $requeteDonnees) {
74
		RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
74
		RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
75
		echo "Le service '".get_class($this)."' n'autorise pas la création.";
75
		echo "Le service '".get_class($this)."' n'autorise pas la création.";
76
	}
76
	}
77
	
77
	
78
	/**
78
	/**
79
	 * Méthode appelée lors d'une requête HTTP de type DELETE (ou POST avec action=DELETE dans le corps de la requete).
79
	 * Méthode appelée lors d'une requête HTTP de type DELETE (ou POST avec action=DELETE dans le corps de la requete).
80
	 * 
80
	 * 
81
	 * Si la suppression est un succès, le code statut HTTP retourné devrait être 204.
81
	 * Si la suppression est un succès, le code statut HTTP retourné devrait être 204.
82
	 * 
82
	 * 
83
	 * @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
83
	 * @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
84
	 * @return mixed une chaine indiquant le succès de l'opération ou rien.
84
	 * @return mixed une chaine indiquant le succès de l'opération ou rien.
85
	 */
85
	 */
86
	public function supprimer($ressources) {
86
	public function supprimer($ressources) {
87
		RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
87
		RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
88
		echo "Le service '".get_class($this)."' n'autorise pas la suppression.";
88
		echo "Le service '".get_class($this)."' n'autorise pas la suppression.";
89
	}
89
	}
90
}
90
}
91
?>
91
?>