par
naholyr » 24 févr. 2009, 08:54
Si tu tiens à avoir un fichier de config au format PHP, et qu'il soit éditable, le plus simple est d'utiliser un tableau :
<?php $config = array(
'variable1' => 'toto',
'variable2' => 12345,
'variable3' => 'super',
...
); ?>
Pourquoi ?
- tant qu'à avoir une affreuse variable globale pour la config, autant se limiter à n'en avoir qu'une seule, ici $config, on limite donc : 1. le nombre de variables dont il faut se souvenir de faire attention à ne pas les écraser, 2. le risque d'écraser une de ses variables.
- c'est beaucoup plus facile de faire ainsi un affichage exhaustif de la config (une seule variable à traiter, la liste des options = la liste des clés du tableau).
- c'est tout autant lisible.
- mais surtout, ça permet de répondre à ton problème avec var_export()
<?php
// Charger la config
include 'config.php';
// Modifier la config
$config['variable1'] = 'Marcel';
// Sauvegarder la config
$configTxt = '<'.'?php $config = ' . var_export($config, true) . '; ?'.'>'; // Nouveau contenu
copy('config.php', 'config.php-bak'.date('YmdHis')); // Sauvegarde de l'ancien
file_put_contents('config.php', $configTxt); // Ecriture du nouveau
Si tu tiens à avoir un fichier de config au format PHP, et qu'il soit éditable, le plus simple est d'utiliser un tableau :
[php]<?php $config = array(
'variable1' => 'toto',
'variable2' => 12345,
'variable3' => 'super',
...
); ?>
[/php]
Pourquoi ?
- tant qu'à avoir une affreuse variable globale pour la config, autant se limiter à n'en avoir qu'une seule, ici $config, on limite donc : 1. le nombre de variables dont il faut se souvenir de faire attention à ne pas les écraser, 2. le risque d'écraser une de ses variables.
- c'est beaucoup plus facile de faire ainsi un affichage exhaustif de la config (une seule variable à traiter, la liste des options = la liste des clés du tableau).
- c'est tout autant lisible.
- mais surtout, ça permet de répondre à ton problème avec var_export() ;)
[php]<?php
// Charger la config
include 'config.php';
// Modifier la config
$config['variable1'] = 'Marcel';
// Sauvegarder la config
$configTxt = '<'.'?php $config = ' . var_export($config, true) . '; ?'.'>'; // Nouveau contenu
copy('config.php', 'config.php-bak'.date('YmdHis')); // Sauvegarde de l'ancien
file_put_contents('config.php', $configTxt); // Ecriture du nouveau
[/php]