Line 270... |
Line 270... |
270 |
$this->initialiserMethode();
|
270 |
$this->initialiserMethode();
|
271 |
$this->initialiserRequeteDonnees();
|
271 |
$this->initialiserRequeteDonnees();
|
Line 272... |
Line 272... |
272 |
|
272 |
|
Line 273... |
Line 273... |
273 |
$urlParts = $this->decouperUrlChemin();
|
273 |
$urlParts = $this->decouperUrlChemin();
|
274 |
|
274 |
|
275 |
$this->initialiserApiVersion(array_shift($urlParts));
|
275 |
$this->initialiserApiVersion($urlParts);
|
Line 276... |
Line 276... |
276 |
$this->initialiserServiceNom(array_shift($urlParts));
|
276 |
$this->initialiserServiceNom(array_shift($urlParts));
|
277 |
$this->initialiserRessource($urlParts);
|
277 |
$this->initialiserRessource($urlParts);
|
Line 329... |
Line 329... |
329 |
$urlChaine = substr($url, strlen(Config::get('serveur.baseAlternativeURL')), $tailleURL);
|
329 |
$urlChaine = substr($url, strlen(Config::get('serveur.baseAlternativeURL')), $tailleURL);
|
330 |
}
|
330 |
}
|
331 |
return explode('/', $urlChaine);
|
331 |
return explode('/', $urlChaine);
|
332 |
}
|
332 |
}
|
Line -... |
Line 333... |
- |
|
333 |
|
- |
|
334 |
/**
|
- |
|
335 |
* Gère les API non versionnées, si le paramètre de configuration
|
- |
|
336 |
* "api_non_versionnee" est explicitement mis à 1 / true. Dans ce cas,
|
- |
|
337 |
* modifie les chemins de chargement des bibliothèques et des modules.
|
- |
|
338 |
* ATTENTION $urlParts doit être un pointeur, car un élément est parfois dépilé
|
- |
|
339 |
* @param array &$urlParts pointeur sur les éléments d'URL desquels tirer éventuellement la version de l'API
|
333 |
|
340 |
*/
|
- |
|
341 |
private function initialiserApiVersion(&$urlParts) {
|
- |
|
342 |
self::$config['api_non_versionnee'] = Config::get('api_non_versionnee');
|
- |
|
343 |
// test à l'envers pour rétrocompatibilité, évite de rajouter un
|
- |
|
344 |
// paramètre de config pour les API versionnées (par défaut)
|
- |
|
345 |
if (self::$config['api_non_versionnee'] != 1) {
|
334 |
private function initialiserApiVersion($apiVersion) {
|
346 |
$apiVersion = array_shift($urlParts);
|
335 |
if ($this->verifierApiVersion($apiVersion)) {
|
347 |
if ($this->verifierApiVersion($apiVersion)) {
|
336 |
$this->apiVersion = $apiVersion;
|
348 |
$this->apiVersion = $apiVersion;
|
337 |
self::$config['chemins']['api'] = Config::get('chemin_modules').$this->apiVersion.DS;
|
349 |
self::$config['chemins']['api'] = Config::get('chemin_modules').$this->apiVersion.DS;
|
- |
|
350 |
self::$config['chemins']['api_bibliotheque'] = self::$config['chemins']['api'].Config::get('dossier_bibliotheque').DS;
|
- |
|
351 |
} else {
|
- |
|
352 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_MAUVAISE_REQUETE);
|
- |
|
353 |
$e = "Aucune version d'API n'a été spécifiée.\n".
|
- |
|
354 |
"La version doit respecter l'expression régulière suivante : ".self::MOTIF_API_VERSION.".\n".
|
- |
|
355 |
"L'url doit avoir la forme suivante : http://www.mondomaine.org/services/apiVersion/monService/";
|
- |
|
356 |
self::ajouterMessage($e);
|
- |
|
357 |
self::cloreAccesServeur();
|
338 |
self::$config['chemins']['api_bibliotheque'] = self::$config['chemins']['api'].Config::get('dossier_bibliotheque').DS;
|
358 |
}
|
339 |
} else {
|
- |
|
340 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_MAUVAISE_REQUETE);
|
359 |
} else {
|
341 |
$e = "Aucune version d'API n'a été spécifiée.\n".
|
360 |
// Chemins sans dossier de version d'API
|
342 |
"La version doit respecter l'expression régulière suivante : ".self::MOTIF_API_VERSION.".\n".
|
361 |
self::$config['chemins']['api'] = Config::get('chemin_modules');
|
343 |
"L'url doit avoir la forme suivante : http://www.mondomaine.org/services/apiVersion/monService/";
|
- |
|
344 |
self::ajouterMessage($e);
|
- |
|
345 |
self::cloreAccesServeur();
|
362 |
self::$config['chemins']['api_bibliotheque'] = self::$config['chemins']['api'].Config::get('dossier_bibliotheque').DS;
|
346 |
}
|
363 |
}
|
Line 347... |
Line 364... |
347 |
}
|
364 |
}
|
348 |
|
365 |
|
Line 431... |
Line 448... |
431 |
/**
|
448 |
/**
|
432 |
* La méthode __autoload() charge dynamiquement les classes trouvées dans le code.
|
449 |
* La méthode __autoload() charge dynamiquement les classes trouvées dans le code.
|
433 |
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.
|
450 |
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.
|
434 |
*
|
451 |
*
|
435 |
*@param string le nom de la classe appelée.
|
452 |
*@param string le nom de la classe appelée.
|
436 |
*@return void le fichier contenant la classe doit être inclu par la fonction.
|
453 |
*@return void le fichier contenant la classe doit être inclus par la fonction.
|
437 |
*/
|
454 |
*/
|
438 |
public static function chargerClasse($classe) {
|
455 |
public static function chargerClasse($classe) {
|
439 |
if (class_exists($classe)) {
|
456 |
if (class_exists($classe)) {
|
440 |
return null;
|
457 |
return null;
|
441 |
}
|
458 |
}
|
442 |
$chemins = array('', self::$config['chemins']['api'], self::$config['chemins']['api_bibliotheque']);
|
459 |
$chemins = array('', self::$config['chemins']['api'], self::$config['chemins']['api_bibliotheque']);
|
- |
|
460 |
$chemins = array_unique($chemins);
|
443 |
foreach ($chemins as $chemin) {
|
461 |
foreach ($chemins as $chemin) {
|
444 |
$chemin = $chemin.$classe.'.php';
|
462 |
$chemin = $chemin.$classe.'.php';
|
445 |
if (file_exists($chemin)) {
|
463 |
if (file_exists($chemin)) {
|
446 |
require_once $chemin;
|
464 |
require_once $chemin;
|
447 |
}
|
465 |
}
|