Subversion Repositories Applications.framework

Compare Revisions

Regard whitespace Rev 486 → Rev 487

/trunk/framework/RestServeur.php
272,7 → 272,7
 
$urlParts = $this->decouperUrlChemin();
 
$this->initialiserApiVersion(array_shift($urlParts));
$this->initialiserApiVersion($urlParts);
$this->initialiserServiceNom(array_shift($urlParts));
$this->initialiserRessource($urlParts);
 
331,7 → 331,19
return explode('/', $urlChaine);
}
 
private function initialiserApiVersion($apiVersion) {
/**
* Gère les API non versionnées, si le paramètre de configuration
* "api_non_versionnee" est explicitement mis à 1 / true. Dans ce cas,
* modifie les chemins de chargement des bibliothèques et des modules.
* ATTENTION $urlParts doit être un pointeur, car un élément est parfois dépilé
* @param array &$urlParts pointeur sur les éléments d'URL desquels tirer éventuellement la version de l'API
*/
private function initialiserApiVersion(&$urlParts) {
self::$config['api_non_versionnee'] = Config::get('api_non_versionnee');
// test à l'envers pour rétrocompatibilité, évite de rajouter un
// paramètre de config pour les API versionnées (par défaut)
if (self::$config['api_non_versionnee'] != 1) {
$apiVersion = array_shift($urlParts);
if ($this->verifierApiVersion($apiVersion)) {
$this->apiVersion = $apiVersion;
self::$config['chemins']['api'] = Config::get('chemin_modules').$this->apiVersion.DS;
344,7 → 356,12
self::ajouterMessage($e);
self::cloreAccesServeur();
}
} else {
// Chemins sans dossier de version d'API
self::$config['chemins']['api'] = Config::get('chemin_modules');
self::$config['chemins']['api_bibliotheque'] = self::$config['chemins']['api'].Config::get('dossier_bibliotheque').DS;
}
}
 
private function verifierApiVersion($apiVersion) {
$apiOk = false;
433,7 → 450,7
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.
*
*@param string le nom de la classe appelée.
*@return void le fichier contenant la classe doit être inclu par la fonction.
*@return void le fichier contenant la classe doit être inclus par la fonction.
*/
public static function chargerClasse($classe) {
if (class_exists($classe)) {
440,6 → 457,7
return null;
}
$chemins = array('', self::$config['chemins']['api'], self::$config['chemins']['api_bibliotheque']);
$chemins = array_unique($chemins);
foreach ($chemins as $chemin) {
$chemin = $chemin.$classe.'.php';
if (file_exists($chemin)) {