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)) { |