1,52 → 1,53 |
<?php |
class CacheFichier { |
/** |
* Available options |
* Options disponibles |
* |
* =====> (string) cache_dir : |
* - Directory where to put the cache files |
* ====> (string) stockage_chemin : |
* Chemin vers le dossier devant contenir l'arborescence du cache. |
* |
* =====> (boolean) file_locking : |
* - Enable / disable file_locking |
* - Can avoid cache corruption under bad circumstances but it doesn't work on multithread |
* webservers and on NFS filesystems for example |
* =====> (boolean) fichier_verrou : |
* - Active / Désactive le verrouillage des fichiers |
* - Peut éviter la corruption du cache dans de mauvaises circonstances, mais cela ne fonctionne pas sur des serveur |
* multithread et sur les systèmes de fichiers NFS par exemple. |
* |
* =====> (boolean) read_control : |
* - Enable / disable read control |
* - If enabled, a control key is embeded in cache file and this key is compared with the one |
* calculated after the reading. |
* =====> (boolean) controle_lecture : |
* - Activer / désactiver le contrôle de lecture |
* - S'il est activé, une clé de contrôle est ajoutée dans le fichier de cache et cette clé est comparée avec celle calculée |
* après la lecture. |
* |
* =====> (string) read_control_type : |
* - Type of read control (only if read control is enabled). Available values are : |
* 'md5' for a md5 hash control (best but slowest) |
* 'crc32' for a crc32 hash control (lightly less safe but faster, better choice) |
* 'adler32' for an adler32 hash control (excellent choice too, faster than crc32) |
* 'strlen' for a length only test (fastest) |
* =====> (string) controle_lecture_type : |
* Type de contrôle de lecture (seulement si le contrôle de lecture est activé). |
* Les valeurs disponibles sont: |
* - «md5» pour un contrôle md5 (le meilleur mais le plus lent) |
* - «crc32» pour un contrôle de hachage crc32 (un peu moins sécurisé, mais plus rapide, un meilleur choix) |
* - «adler32» pour un contrôle de hachage adler32 (excellent choix aussi, plus rapide que crc32) |
* - «strlen» pour un test de longueur uniquement (le plus rapide) |
* |
* =====> (int) hashed_directory_level : |
* - Hashed directory level |
* - Set the hashed directory structure level. 0 means "no hashed directory |
* structure", 1 means "one level of directory", 2 means "two levels"... |
* This option can speed up the cache only when you have many thousands of |
* cache file. Only specific benchs can help you to choose the perfect value |
* for you. Maybe, 1 or 2 is a good start. |
* =====> (int) dossier_niveau : |
* - Permet de réglez le nombre de niveau de sous-dossier que contiendra l'arborescence des dossiers du cache. |
* 0 signifie "pas de sous-dossier pour le cache", |
* 1 signifie "un niveau de sous-dossier", |
* 2 signifie "deux niveaux" ... |
* Cette option peut accélérer le cache seulement lorsque vous avez plusieurs centaines de fichiers de cache. |
* Seuls des tests spécifiques peuvent vous aider à choisir la meilleure valeur possible pour vous. |
* 1 ou 2 peut être est un bon début. |
* |
* =====> (int) hashed_directory_umask : |
* - Umask for hashed directory structure |
* =====> (int) dossier_umask : |
* - Umask pour les sous-dossiers de l'arborescence du cache. |
* |
* =====> (string) file_name_prefix : |
* - prefix for cache files |
* - be really carefull with this option because a too generic value in a system cache dir |
* (like /tmp) can cause disasters when cleaning the cache |
* =====> (string) fichier_prefixe : |
* - préfixe pour les fichiers du cache |
* - ATTENTION : faite vraiment attention avec cette option, car une valeur trop générique dans le dossier cache du système |
* (comme /tmp) peut provoquer des catastrophes lors du nettoyage du cache. |
* |
* =====> (int) cache_file_umask : |
* - Umask for cache files |
* =====> (int) fichier_umask : |
* - Umask pour les fichiers de cache |
* |
* =====> (int) metatadatas_array_max_size : |
* - max size for the metadatas array (don't change this value unless you |
* know what you are doing) |
* =====> (int) metadonnees_max_taille : |
* - taille maximum pour le tableau de métadonnées du cache (ne changer pas cette valeur sauf si vous savez ce que vous faite) |
* |
* @var array available options |
* @var array options disponibles |
*/ |
protected $options = array( |
'stockage_chemin' => null, |
78,6 → 79,7 |
*/ |
public function __construct(array $options = array(), Cache $cache) { |
$this->Cache = $cache; |
$this->initialiserOptionsParConfig(); |
$this->setOptions($options); |
|
if (isset($this->options['prefixe_fichier'])) { |
98,6 → 100,14 |
} |
} |
|
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)) { |