Changeset 113926 in spip-zone


Ignore:
Timestamp:
Feb 15, 2019, 8:04:13 PM (7 months ago)
Author:
eric@…
Message:

Plutot que d'effacer uniquement la configuration sur la page d'admin plugins on la recharge.
On ajoute un index conservation à la configuration pour passer la durée max d'un cache ou 0 si permanent.
On transforme l'API cache_existe() en cache_est_valide() qui teste aussi la péremption du cache.
On ajuste la charger du formulaire de vidage du cache.
Un up pour tout ça.

Location:
_plugins_/cache/trunk
Files:
5 edited

Legend:

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

    r113918 r113926  
    4545                'securisation'    => false,
    4646                'serialisation'   => true,
    47                 'separateur'      => '_'
     47                'separateur'      => '_',
     48                'conservation'    => 0
    4849        );
    4950
     
    5960        // On merge la configuration du plugin avec celle par défaut pour assure la complétude.
    6061        $configuration = array_merge($configuration_defaut, $configuration_plugin);
     62
     63        // On vérifie que la durée de conservation du cache est bien un entier supérieur ou égal à 0.
     64        // La durée est exprimée en secondes.
     65        $configuration['conservation'] = abs(intval($configuration['conservation']));
    6166
    6267        // On vérifie l'indicateur de sécurisation : si le cache doit être sécurisé alors son extension
     
    7883
    7984        // Construction du tableau des composants du nom : dans l'ordre on a toujours les composants obligatoires
    80         // suivis des composants faclutatifs.
     85        // suivis des composants facultatifs.
    8186        $configuration['nom'] = array_merge($configuration['nom_obligatoire'], $configuration['nom_facultatif']);
    8287
  • _plugins_/cache/trunk/cache_pipelines.php

    r113917 r113926  
    2727                if ($exec == 'admin_plugin') {
    2828                        // Administration des plugins
     29
    2930                        // Supprime la meta du plugin Cache Factory de façon à mettre à jour la configuration des
    3031                        // plugins utilisateur si besoin.
     32                        // Recharge la configuration des plugins utilisateur :
     33                        // -- on lit la meta pour obtenir la liste des plugins
    3134                        include_spip('inc/cache');
    32                         cache_effacer_configuration();
     35                        $configuration = cache_obtenir_configuration();
     36                        if ($configuration) {
     37                                $plugins = array_keys($configuration);
     38                                // -- on supprime la meta
     39                                cache_effacer_configuration();
     40                                // -- on reconfigure chaque plugin
     41                                include_spip('cache/cache');
     42                                foreach ($plugins as $_plugin) {
     43                                        cache_cache_configurer($_plugin);
     44                                }
     45                        }
    3346                }
    3447        }
  • _plugins_/cache/trunk/formulaires/cache_vider.php

    r113862 r113926  
    2424
    2525        // Lecture de la configuration des caches du plugin.
    26         // Si celle-ci n'existe pas encore elle est créée (cas d'un premier appel, peu probable pour une lecture).
    27         $configuration = array();
    2826        include_spip('inc/cache');
    29         include_spip('cache/cache');
    30         if (empty($configuration) and (!$configuration = cache_obtenir_configuration($plugin))) {
    31                 $configuration = cache_cache_configurer($plugin);
    32         }
     27        $configuration = cache_obtenir_configuration($plugin);
    3328
    3429        // On appelle le service de chargement des variables qui est soit celui par défaut de Cache Factory
    3530        // soit celui spécifique au plugin si il existe.
     31        include_spip('cache/cache');
    3632        $valeurs = cache_cache_vider_charger($plugin, $configuration);
    3733
  • _plugins_/cache/trunk/inc/cache.php

    r113904 r113926  
    161161
    162162/**
    163  * Teste l'existence d'un cache sur le disque et, si il existe, renvoie le chemin complet.
     163 * Teste l'existence d'un cache sur le disque et, si il existe, teste ensuite si la date d'expiration
     164 * du fichier n'est pas dépassée. Si le fichier existe et n'est pas périmé, la fonction renvoie le chemin complet.
    164165 *
    165166 * @api
     
    176177 *
    177178 * @return string
    178  */
    179 function cache_existe($plugin, $cache) {
     179 *         Le chemin complet du fichier si valide, la chaine vide sinon.
     180 */
     181function cache_est_valide($plugin, $cache) {
    180182
    181183        // Lecture de la configuration des caches du plugin.
     
    197199        }
    198200
    199         // Vérifier l'existence du fichier.
    200201        if ($fichier_cache) {
     202                // Vérifier en premier lieu l'existence du fichier.
    201203                if (!file_exists($fichier_cache)) {
    202204                        $fichier_cache = '';
     205                } else {
     206                        // Vérifier la péremption ou pas du fichier.
     207                        // -- un délai de conservation est configuré pour les caches du plugin utilisateur mais il possible
     208                        //    de préciser un délai spécifique à un cache donné (index 'conservation' dans l'id du cache).
     209                        // -- si le délai est à 0 cela correspond à un cache dont la durée de vie est infinie.
     210                        $conservation = isset($cache['conservation']) ? $cache['conservation'] : $configuration['conservation'];
     211                        if (($conservation > 0)
     212                        and (!filemtime($fichier_cache) or (time() - filemtime($fichier_cache) > $conservation))) {
     213                                $fichier_cache = '';
     214                        }
    203215                }
    204216        }
  • _plugins_/cache/trunk/paquet.xml

    r113918 r113926  
    22        prefix="cache"
    33        categorie="outil"
    4         version="0.2.0"
     4        version="0.2.1"
    55        etat="test"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.