Subversion Repositories Applications.framework

Rev

Rev 269 | Rev 291 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 269 Rev 282
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)) {