Changeset 113745 in spip-zone
- Timestamp:
- Feb 5, 2019, 12:53:57 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/cache/trunk/inc/cache_api.php
r113744 r113745 11 11 12 12 /** 13 * Ecrit un contenu dans le cache spécifié d'un plugin utilisateur.14 * 15 * @api 16 * 17 * @param string $plugin13 * Ecrit un contenu dans un cache spécifié par son identifiant. 14 * 15 * @api 16 * 17 * @param string $plugin 18 18 * Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier 19 19 * ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe. 20 20 * @param array|string $cache 21 * Nom et extension du fichier cache. 22 * @param array $contenu 23 * Contenu sous forme de tableau à stocker dans un fichier cache après sérialisation. 21 * Identifiant du cache sous la forme d'une chaine (le chemin du fichier) ou d'un tableau fournissant 22 * les composants canoniques du nom. 23 * @param array|string $contenu 24 * Contenu sous forme de tableau à sérialiser ou sous la forme d'une chaine. 24 25 * 25 26 * @return bool 27 * True si l'écriture s'est bien passée, false sinon. 26 28 */ 27 29 function cache_ecrire($plugin, $cache, $contenu) { … … 86 88 87 89 /** 88 * Lit le cache spécifié d'un plugin donné et renvoie le contenu sous forme de tableau 89 * éventuellement vide. 90 * 91 * @api 92 * 93 * @param string $plugin 94 * Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier 95 * ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe. 96 * @param array|string $cache 97 * Nom et extension du fichier cache. 90 * Lit le cache spécifié par son identifiant et renvoie le contenu sous forme de tableau 91 * ou de chaine éventuellement vide. 92 * 93 * @api 94 * 95 * @param string $plugin 96 * Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier 97 * ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe. 98 * @param array|string $cache 99 * Identifiant du cache sous la forme d'une chaine (le chemin du fichier) ou d'un tableau fournissant 100 * les composants canoniques du nom. 98 101 * 99 102 * @return array|string|bool … … 151 154 152 155 /** 153 * Renvoie le chemin complet du cache si celui-ci existe sinon renvoie une chaine vide. 154 * 155 * @api 156 * 157 * @param string $plugin 158 * Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier 159 * ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe. 160 * @param array $cache 161 * Tableau identifiant le cache pour lequel on veut construire le nom. 162 * @param array $configuration 163 * Configuration complète des caches du plugin utlisateur. 156 * Teste l'existence d'un cache sur le disque et, si il existe, renvoie le chemin complet. 157 * 158 * @api 159 * 160 * @param string $plugin 161 * Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier 162 * ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe. 163 * @param array|string $cache 164 * Identifiant du cache sous la forme d'une chaine (le chemin du fichier) ou d'un tableau fournissant 165 * les composants canoniques du nom. 164 166 * 165 167 * @return string … … 200 202 201 203 /** 202 * Renvoie le chemin complet du cache si celui-ci existe sinon renvoie une chaine vide. 204 * Renvoie le chemin complet du cache sans tester son existence. 205 * Cette fonction est une encapsulation du service cache_cache_nommer(). 203 206 * 204 207 * @api … … 208 211 * ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe. 209 212 * @param array $cache 210 * Tableau identifiant le cache pour lequel on veut construire le nom. 211 * @param array $configuration 212 * Configuration complète des caches du plugin utlisateur. 213 * Identifiant du cache sous la forme d'un tableau fournissant les composants canoniques du nom. 213 214 * 214 215 * @return string … … 233 234 234 235 return $fichier_cache; 236 } 237 238 239 /** 240 * Supprime le cache spécifié par son identifiant. 241 * 242 * @api 243 * 244 * @param string $plugin 245 * Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier 246 * ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe. 247 * @param array|string $cache 248 * Identifiant du cache sous la forme d'une chaine (le chemin du fichier) ou d'un tableau fournissant 249 * les composants canoniques du nom. 250 * 251 * @return bool 252 * True si la suppression s'est bien passée, false sinon. 253 */ 254 function cache_supprimer($plugin, $cache) { 255 256 // Initialisation du contenu du cache 257 $cache_supprime = false; 258 259 // Lecture de la configuration des caches du plugin. 260 // Si celle-ci n'existe pas encore elle est créée (cas d'un premier appel, peu probable pour une lecture). 261 static $configuration = array(); 262 if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_configuration_lire($plugin))) { 263 $configuration[$plugin] = cache_cache_configurer($plugin); 264 } 265 266 // Le cache peut-être fourni soit sous la forme d'un chemin complet soit sous la forme d'un 267 // tableau permettant de calculer le chemin complet. On prend en compte ces deux cas. 268 $fichier_cache = ''; 269 if (is_array($cache)) { 270 // Détermination du chemin du cache : 271 // - le nom sans extension est construit à partir des éléments fournis sur le conteneur et 272 // de la configuration du nom pour le plugin. 273 $fichier_cache = cache_cache_nommer($plugin, $cache, $configuration[$plugin])) { 274 } elseif (is_string($cache)) { 275 // Le chemin complet du fichier cache est fourni. Aucune vérification ne peut être faite 276 // il faut donc que l'appelant ait utilisé l'API cache_existe() pour calculer le fichier au préalable. 277 $fichier_cache = $cache; 278 } 279 280 // Détermination du nom du cache en fonction du plugin appelant et du type 281 if ($fichier_cache) { 282 // Lecture du fichier cache sécurisé ou pas suivant la configuration. 283 include_spip('inc/flock'); 284 $cache_supprime = supprimer_fichier($fichier_cache); 285 } 286 287 return $cache_supprime; 235 288 } 236 289 … … 269 322 270 323 /** 271 * Lit la configuration des caches d'un plugin utilisateur.324 * Lit la configuration standard des caches d'un plugin utilisateur. 272 325 * 273 326 * @api
Note: See TracChangeset
for help on using the changeset viewer.