New file |
0,0 → 1,79 |
<?php |
/** |
* Le conteneur encapsule les classes et les paramètres de config. |
* Il gère leur instanciation, ainsi que la récupération des paramètres depuis les fichiers de configuration. |
* |
* @category php 5.2 |
* @package cel |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @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']; |
} |
} |
?> |