* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org) * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL * @version $Id$ */ class Conteneur { protected $parametres = array(); protected $partages = array(); public function __construct(array $parametres = null) { $this->parametres = is_null($parametres) ? array() : $parametres; } public function getParametre($cle) { $valeur = isset($this->parametres[$cle]) ? $this->parametres[$cle] : null; if (is_null($valeur) && $this->etreParametreASection($cle)) { $valeur = $this->getParametreAvecSection($cle); } return $valeur; } private function etreParametreASection($cle) { return strpos($cle, '.') ? true : false; } private function getParametreAvecSection($cle) { $cleComposee = explode('.', $cle); $valeur = $this->parametres; foreach ($cleComposee as $cleCourrante) { $valeur = isset($valeur[$cleCourrante]) ? $valeur[$cleCourrante] : null; } return $valeur; } public function getParametreTableau($cle) { $tableau = array(); $parametre = $this->getParametre($cle); if (empty($parametre) === false) { $tableauPartiel = explode(',', $parametre); $tableauPartiel = array_map('trim', $tableauPartiel); foreach ($tableauPartiel as $champ) { if (strpos($champ, '=') === false) { $tableau[] = trim($champ); } else { list($cle, $val) = explode('=', $champ); $tableau[trim($cle)] = trim($val); } } } return $tableau; } public function setParametre($cle, $valeur) { $this->parametres[$cle] = $valeur; } public function getBdd() { if (!isset($this->partages['Bdd'])){ $this->partages['Bdd'] = new Bdd($this->getParametre('database_cel')); } return $this->partages['Bdd']; } public function getScript() { if (!isset($this->partages['Script'])){ $this->partages['Script'] = new Script(); } return $this->partages['Script']; } } ?>