PHP : Stocker sa configuration dans un fichier ini
Par Méthylbro le dimanche 21 juin 2009, 08:30 - Tutoriels - Lien permanent
Maintenant que vous savez comment gérer vos variables de configuration en PHP avec une classe et que vous êtes capable de stocker ces dernières de différentes manière. Nous allons voir comment les enregistrer au sein d'un fichier ini.
Comme je l'ai déjà dit, ce format sera plus efficace, car l'on pourra lire et écrire plus facilement les données concernées.
Nous allons voir aujourd'hui un exemple de classe héritant de la classe abstraite ConfigurationHandler ainsi que l'interface iConfigurationHandler que nous avons déjà vu dans un billet précédant.
Il suffit juste d'indiquer comment doivent se lire et s'enregistrer les différentes variables de configuration dans le fichier .ini.
class IniFile_ConfigurationHandler extends ConfigurationHandler implements iConfigurationHandler {
private $file;
public function __construct($file, $auto=false) {
parent::__construct($auto);
$r = (file_exists($file) && is_file($file))
? (is_readable($file) && is_writable($file))
? $this->file = $file
: new Exception('failed to open stream: Permission denied')
: new Exception('failed opening \''.$file.'\': No such file');
if ($r instanceof Exception) throw $r;
}
public function load() {
$this->setData(parse_ini_file($this->file, false));
return $this;
}
public function save() {
$str = null;
foreach($this->data as $name => $value) {
$str.= $name.' = '. ((is_int($value))
? $value
: (is_bool($value))
? ($value) ? 'On' : 'Off'
: '"'.$value.'"').PHP_EOL;
}
file_put_contents($this->file, $str);
return $this;
}
}
Ainsi, pour dire à notre classe Configuration qu'elle doit lire et enregistrer ses valeurs dans le fichier config.ini, nous l'utiliserons désormais de la façon suivante :
$maMethode = new IniFile_ConfigurationHandler('config.ini');
$maConfiguration = new Configuration($maMethode);
$maConfiguration->maVariable = 'Hello World !';
$maConfiguration->foo = 'bar';
$maMethode->save();
Commentaires