Rev 44 | Rev 60 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// declare(encoding='UTF-8');/*** Classe mère de l'API 0.1 d'eFLore.** @category PHP 5.2* @package eflore-consultation* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>* @author Delphine CAUQUIL <delphine@tela-botanica.org>* @copyright 2011 Tela-Botanica* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2* @version $Id$*/abstract class Eflore {private $projet = null;public function __construct($projet) {$this->projet = $projet;}/*** Formate une url à partir d'un template contenant des paramètres à remplacer sous la forme {monParametre}.* Le tableau associatif de paramètres doit contenir en clé le paramêtre (monParametre) sans les accolades,* la valeur correspondante sera la valeur de remplacement.** @param String $tpl le squelette d'url à formater.* @param Array $parametres le tableau de parametres (sans accolades pour les clés).*/protected function formaterUrl($tpl, Array $parametres) {foreach ($parametres as $cle => $valeur) {$cle = '{'.$cle.'}';$parametres[$cle] = $valeur;}$url = strtr($tpl, $parametres);return $url;}/*** Permet de consulter une url et retourne le résultat ou une erreur** @param $url l'url du service à appeler pour charger les données. */protected function chargerDonnees($url) {$resultat = false;$json = $this->getRestClient()->consulter($url);$entete = $this->getRestClient()->getReponseEntetes();//Si le service meta-donnees fonctionne correctement, l'entete comprend la clé wrapper_dataif (isset($entete['wrapper_data'])) {$forceTableauAssociatif = true;$resultat = json_decode($json, $forceTableauAssociatif);} else {$m = "L'url <a href=\"$url\">$url</a> lancée via RestClient renvoie une erreur";trigger_error($m, E_USER_WARNING);}return $resultat;}//+----------------------------------------------------------------------------------------------------------------+// GESTION DES CLASSES CHARGÉES À LA DEMANDEprivate function getRestClient() {if (!isset($this->restClient)) {$this->restClient = new RestClient();}return $this->restClient;}}?>