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)) {
|