Changeset 113745 in spip-zone


Ignore:
Timestamp:
Feb 5, 2019, 12:53:57 PM (2 months ago)
Author:
eric@…
Message:

PHPdoc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/cache/trunk/inc/cache_api.php

    r113744 r113745  
    1111
    1212/**
    13  * Ecrit un contenu dans le cache spécifié d'un plugin utilisateur.
    14  *
    15  * @api
    16  *
    17  * @param string $plugin
     13 * Ecrit un contenu dans un cache spécifié par son identifiant.
     14 *
     15 * @api
     16 *
     17 * @param string        $plugin
    1818 *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier
    1919 *        ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
    2020 * @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.
    2425 *
    2526 * @return bool
     27 *         True si l'écriture s'est bien passée, false sinon.
    2628 */
    2729function cache_ecrire($plugin, $cache, $contenu) {
     
    8688
    8789/**
    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.
    98101 *
    99102 * @return array|string|bool
     
    151154
    152155/**
    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.
    164166 *
    165167 * @return string
     
    200202
    201203/**
    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().
    203206 *
    204207 * @api
     
    208211 *        ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
    209212 * @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.
    213214 *
    214215 * @return string
     
    233234
    234235        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 */
     254function 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;
    235288}
    236289
     
    269322
    270323/**
    271  * Lit la configuration des caches d'un plugin utilisateur.
     324 * Lit la configuration standard des caches d'un plugin utilisateur.
    272325 *
    273326 * @api
Note: See TracChangeset for help on using the changeset viewer.