40,35 → 40,44 |
|
/** |
* Les options disponibles pour le cache : |
* ====> (string) stockage_mode : |
* Indique le mode de stockage du cache à utiliser parmis : |
* - Cache::STOCKAGE_MODE_FICHIER : sous forme d'une arborescence de fichiers et dossier |
* - Cache::STOCKAGE_MODE_SQLITE : sous forme d'une base de données SQLite |
* |
* ====> (boolean) controle_ecriture : [write_control] |
* - Enable / disable write control (the cache is read just after writing to detect corrupt entries) |
* - Enable write control will lightly slow the cache writing but not the cache reading |
* Write control can detect some corrupt cache files but maybe it's not a perfect control |
* ====> (string) stockage_chemin : |
* Chemin vers : |
* - Cache::STOCKAGE_MODE_FICHIER : le dossier devant contenir l'arborescence. |
* - Cache::STOCKAGE_MODE_SQLITE : le fichier contenant la base SQLite. |
* |
* ====> (boolean) mise_en_cache : [caching] |
* - Enable / disable caching |
* (can be very useful for the debug of cached scripts) |
* ====> (boolean) controle_ecriture : |
* - Active / Désactive le controle d'écriture (le cache est lue jute après l'écriture du fichier pour détecter sa corruption) |
* - Activer le controle d'écriture ralentira légèrement l'écriture du fichier de cache mais pas sa lecture |
* Le controle d'écriture peut détecter la corruption de fichier mais ce n'est pas un système de controle parfait. |
* |
* =====> (string) cache_id_prefixe : [cache_id_prefix] |
* - prefix for cache ids (namespace) |
* ====> (boolean) mise_en_cache : |
* - Active / Désactive la mise en cache |
* (peut être très utile pour le débogage des scripts utilisant le cache |
* |
* ====> (boolean) serialisation_auto : [automatic_serialization] |
* - Enable / disable automatic serialization |
* - It can be used to save directly datas which aren't strings (but it's slower) |
* =====> (string) cache_id_prefixe : |
* - préfixe pour les identifiant de cache ( = espace de nom) |
* |
* ====> (int) nettoyage_auto : [automatic_cleaning_factor] |
* - Disable / Tune the automatic cleaning process |
* - The automatic cleaning process destroy too old (for the given life time) |
* cache files when a new cache file is written : |
* 0 => no automatic cache cleaning |
* 1 => systematic cache cleaning |
* x (integer) > 1 => automatic cleaning randomly 1 times on x cache write |
* ====> (boolean) serialisation_auto : |
* - Active / Désactive la sérialisation automatique |
* - Peut être utilisé pour sauver directement des données qui ne sont pas des chaines (mais c'est plus lent) |
* |
* ====> (int) duree_de_vie : [lifetime] |
* - Cache lifetime (in seconds) |
* - If null, the cache is valid forever. |
* ====> (int) nettoyage_auto : |
* - Désactive / Régler le processus de nettoyage automatique |
* - Le processus de nettoyage automatiques détruit les fichier trop vieux (pour la durée de vie donnée) |
* quand un nouveau fichier de cache est écrit : |
* 0 => pas de nettoyage automatique |
* 1 => nettoyage automatique systématique |
* x (integer) > 1 => nettoyage automatique toutes les 1 fois (au hasard) sur x écriture de fichier de cache |
* |
* ====> (int) duree_de_vie : |
* - Durée de vie du cache (en secondes) |
* - Si null, le cache est valide indéfiniment. |
* |
* @var array $options les options disponibles pour le cache . |
*/ |
protected $options = array( |
84,7 → 93,8 |
|
protected $stockage = null; |
|
public function __construct($options, $options_stockage = array()) { |
public function __construct($options = array(), $options_stockage = array()) { |
$this->initialiserOptionsParConfig(); |
$this->setOptions($options); |
if ($this->options['stockage_mode'] == self::STOCKAGE_MODE_FICHIER) { |
$this->stockage = new CacheFichier($options_stockage, $this); |
94,6 → 104,14 |
$this->stockage->setEmplacement($this->options['stockage_chemin']); |
} |
|
private function initialiserOptionsParConfig() { |
while (list($nom, $valeur) = each($this->options)) { |
if (Config::existe($nom)) { |
$this->options[$nom] = Config::get($nom); |
} |
} |
} |
|
private function setOptions($options) { |
while (list($nom, $valeur) = each($options)) { |
if (!is_string($nom)) { |