| Line 38... |
Line 38... |
| 38 |
*/
|
38 |
*/
|
| 39 |
private $dernier_id = null;
|
39 |
private $dernier_id = null;
|
| Line 40... |
Line 40... |
| 40 |
|
40 |
|
| 41 |
/**
|
41 |
/**
|
| - |
|
42 |
* Les options disponibles pour le cache :
|
| - |
|
43 |
* ====> (string) stockage_mode :
|
| - |
|
44 |
* Indique le mode de stockage du cache à utiliser parmis :
|
| - |
|
45 |
* - Cache::STOCKAGE_MODE_FICHIER : sous forme d'une arborescence de fichiers et dossier
|
| 42 |
* Les options disponibles pour le cache :
|
46 |
* - Cache::STOCKAGE_MODE_SQLITE : sous forme d'une base de données SQLite
|
| - |
|
47 |
*
|
| - |
|
48 |
* ====> (string) stockage_chemin :
|
| - |
|
49 |
* Chemin vers :
|
| - |
|
50 |
* - Cache::STOCKAGE_MODE_FICHIER : le dossier devant contenir l'arborescence.
|
| - |
|
51 |
* - Cache::STOCKAGE_MODE_SQLITE : le fichier contenant la base SQLite.
|
| 43 |
*
|
52 |
*
|
| 44 |
* ====> (boolean) controle_ecriture : [write_control]
|
53 |
* ====> (boolean) controle_ecriture :
|
| 45 |
* - Enable / disable write control (the cache is read just after writing to detect corrupt entries)
|
54 |
* - Active / Désactive le controle d'écriture (le cache est lue jute après l'écriture du fichier pour détecter sa corruption)
|
| 46 |
* - Enable write control will lightly slow the cache writing but not the cache reading
|
55 |
* - Activer le controle d'écriture ralentira légèrement l'écriture du fichier de cache mais pas sa lecture
|
| 47 |
* Write control can detect some corrupt cache files but maybe it's not a perfect control
|
56 |
* Le controle d'écriture peut détecter la corruption de fichier mais ce n'est pas un système de controle parfait.
|
| 48 |
*
|
57 |
*
|
| 49 |
* ====> (boolean) mise_en_cache : [caching]
|
58 |
* ====> (boolean) mise_en_cache :
|
| 50 |
* - Enable / disable caching
|
59 |
* - Active / Désactive la mise en cache
|
| 51 |
* (can be very useful for the debug of cached scripts)
|
60 |
* (peut être très utile pour le débogage des scripts utilisant le cache
|
| 52 |
*
|
61 |
*
|
| 53 |
* =====> (string) cache_id_prefixe : [cache_id_prefix]
|
62 |
* =====> (string) cache_id_prefixe :
|
| 54 |
* - prefix for cache ids (namespace)
|
63 |
* - préfixe pour les identifiant de cache ( = espace de nom)
|
| 55 |
*
|
64 |
*
|
| 56 |
* ====> (boolean) serialisation_auto : [automatic_serialization]
|
65 |
* ====> (boolean) serialisation_auto :
|
| 57 |
* - Enable / disable automatic serialization
|
66 |
* - Active / Désactive la sérialisation automatique
|
| 58 |
* - It can be used to save directly datas which aren't strings (but it's slower)
|
67 |
* - Peut être utilisé pour sauver directement des données qui ne sont pas des chaines (mais c'est plus lent)
|
| 59 |
*
|
68 |
*
|
| 60 |
* ====> (int) nettoyage_auto : [automatic_cleaning_factor]
|
69 |
* ====> (int) nettoyage_auto :
|
| 61 |
* - Disable / Tune the automatic cleaning process
|
70 |
* - Désactive / Régler le processus de nettoyage automatique
|
| 62 |
* - The automatic cleaning process destroy too old (for the given life time)
|
71 |
* - Le processus de nettoyage automatiques détruit les fichier trop vieux (pour la durée de vie donnée)
|
| 63 |
* cache files when a new cache file is written :
|
72 |
* quand un nouveau fichier de cache est écrit :
|
| 64 |
* 0 => no automatic cache cleaning
|
73 |
* 0 => pas de nettoyage automatique
|
| 65 |
* 1 => systematic cache cleaning
|
74 |
* 1 => nettoyage automatique systématique
|
| 66 |
* x (integer) > 1 => automatic cleaning randomly 1 times on x cache write
|
75 |
* x (integer) > 1 => nettoyage automatique toutes les 1 fois (au hasard) sur x écriture de fichier de cache
|
| 67 |
*
|
76 |
*
|
| 68 |
* ====> (int) duree_de_vie : [lifetime]
|
77 |
* ====> (int) duree_de_vie :
|
| 69 |
* - Cache lifetime (in seconds)
|
78 |
* - Durée de vie du cache (en secondes)
|
| 70 |
* - If null, the cache is valid forever.
|
79 |
* - Si null, le cache est valide indéfiniment.
|
| 71 |
*
|
80 |
*
|
| 72 |
* @var array $options les options disponibles pour le cache .
|
81 |
* @var array $options les options disponibles pour le cache .
|
| 73 |
*/
|
82 |
*/
|
| 74 |
protected $options = array(
|
83 |
protected $options = array(
|
| Line 82... |
Line 91... |
| 82 |
'duree_de_vie' => 3600,
|
91 |
'duree_de_vie' => 3600,
|
| 83 |
);
|
92 |
);
|
| Line 84... |
Line 93... |
| 84 |
|
93 |
|
| Line 85... |
Line 94... |
| 85 |
protected $stockage = null;
|
94 |
protected $stockage = null;
|
| - |
|
95 |
|
| 86 |
|
96 |
public function __construct($options = array(), $options_stockage = array()) {
|
| 87 |
public function __construct($options, $options_stockage = array()) {
|
97 |
$this->initialiserOptionsParConfig();
|
| 88 |
$this->setOptions($options);
|
98 |
$this->setOptions($options);
|
| 89 |
if ($this->options['stockage_mode'] == self::STOCKAGE_MODE_FICHIER) {
|
99 |
if ($this->options['stockage_mode'] == self::STOCKAGE_MODE_FICHIER) {
|
| 90 |
$this->stockage = new CacheFichier($options_stockage, $this);
|
100 |
$this->stockage = new CacheFichier($options_stockage, $this);
|
| 91 |
} else if ($this->options['stockage_mode'] == self::STOCKAGE_MODE_SQLITE) {
|
101 |
} else if ($this->options['stockage_mode'] == self::STOCKAGE_MODE_SQLITE) {
|
| 92 |
$this->stockage = new CacheSqlite($options_stockage, $this);
|
102 |
$this->stockage = new CacheSqlite($options_stockage, $this);
|
| 93 |
}
|
103 |
}
|
| Line -... |
Line 104... |
| - |
|
104 |
$this->stockage->setEmplacement($this->options['stockage_chemin']);
|
| - |
|
105 |
}
|
| - |
|
106 |
|
| - |
|
107 |
private function initialiserOptionsParConfig() {
|
| - |
|
108 |
while (list($nom, $valeur) = each($this->options)) {
|
| - |
|
109 |
if (Config::existe($nom)) {
|
| - |
|
110 |
$this->options[$nom] = Config::get($nom);
|
| - |
|
111 |
}
|
| 94 |
$this->stockage->setEmplacement($this->options['stockage_chemin']);
|
112 |
}
|
| 95 |
}
|
113 |
}
|
| 96 |
|
114 |
|
| 97 |
private function setOptions($options) {
|
115 |
private function setOptions($options) {
|
| 98 |
while (list($nom, $valeur) = each($options)) {
|
116 |
while (list($nom, $valeur) = each($options)) {
|