* @author Jean-Pascal MILCENT * @author Aurelien PERONNET * @license GPL v3 * @license CECILL v2 * @copyright 1999-2014 Tela Botanica */ //TODO : initialiser tous les objets dans le conteneur class Conteneur { protected $parametres = array(); protected $partages = array(); /** * Constructeur de la classe * @param Array $parametres (optionnel) les paramètres additionnels à ajouter à ceux des fichiers de config * */ public function __construct(array $parametres = null) { $this->parametres = is_null($parametres) ? array() : $parametres; } /** * Obtenir un paramètre depuis le tableau de paramètres ou depuis le fichier de config * @param String $cle le nom du paramètre * @return la valeur du paramètre */ public function getParametre($cle) { $valeur = isset($this->parametres[$cle]) ? $this->parametres[$cle] : Config::get($cle); return $valeur; } /** * Obtenir un paramètre depuis le tableau de paramètres ou depuis le fichier de config * et le transformer en tableau s'il est de la forme : "cle=valeur,cle=valeur,..." * @param String $cle le nom du paramètre * @return la valeur du paramètre */ public function getParametreTableau($cle) { $tableau = array(); $parametre = $this->getParametre($cle); if (empty($parametre) === false) { $tableauPartiel = explode(',', $parametre); foreach ($tableauPartiel as $champ) { if (strpos($champ, '=') === false) { $tableau[] = trim($champ); } else { list($cle, $val) = explode('=', $champ); $tableau[trim($cle)] = trim($val); } } } return $tableau; } /** * Enregistrer la valeur d'un paramètre * */ public function setParametre($cle, $valeur) { $this->parametres[$cle] = $valeur; } /** * Permet d'obtenir un objet GestionBdd. */ public function getBdd() { if (!isset($this->partages['Bdd'])){ $this->partages['Bdd'] = new Bdd(); } return $this->partages['Bdd']; } /** * Permet d'obtenir un objet RestClient. */ public function getRestClient() { if (!isset($this->partages['RestClient'])) { $this->partages['RestClient'] = new RestClient(); } return $this->partages['RestClient']; } /** * Permet d'obtenir un objet SquelettePhp. */ public function getSquelettePhp() { if (!isset($this->partages['SquelettePhp'])) { $this->partages['SquelettePhp'] = new SquelettePhp(); } return $this->partages['SquelettePhp']; } }