Changeset 113793 in spip-zone for _plugins_/cache/trunk/cache/cache.php


Ignore:
Timestamp:
Feb 7, 2019, 2:41:24 PM (5 months ago)
Author:
root
Message:

Ajout du service inverse à cache_composer()

File:
1 edited

Legend:

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

    r113782 r113793  
    112112        // Le plugin utilisateur peut fournir un service propre pour construire le chemin complet du fichier cache.
    113113        // Néanmoins, étant donné la généricité du mécanisme offert par le plugin Cache cela devrait être rare.
    114         if ($nommer = cache_chercher_service($plugin, 'cache_nommer')) {
     114        if ($composer = cache_chercher_service($plugin, 'cache_composer')) {
    115115                // On passe le plugin appelant à la fonction car cela permet ainsi de mutualiser les services de stockage.
    116                 $fichier_cache = $nommer($plugin, $cache, $configuration);
     116                $fichier_cache = $composer($plugin, $cache, $configuration);
    117117        } else {
    118118                // On utilise le mécanisme de nommage standard du plugin Cache.
     
    155155
    156156
     157/**
     158 * Décompose le chemin complet du fichier cache en composants déterminé par configuration.
     159 *
     160 * @uses cache_chercher_service()
     161 *
     162 * @param string $plugin
     163 *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier
     164 *        ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
     165 * @param array  $fichier_cache
     166 *        Le chemin complet du fichier à phraser.
     167 * @param array  $configuration
     168 *        Configuration complète des caches du plugin utlisateur lue à partir de la meta de stockage.
     169 *
     170 * @return array
     171 *         Tableau des composants constitutifs du cache
     172 */
     173function cache_cache_decomposer($plugin, $fichier_cache, $configuration) {
     174
     175        // Le plugin utilisateur peut fournir un service propre pour construire le chemin complet du fichier cache.
     176        // Néanmoins, étant donné la généricité du mécanisme offert par le plugin Cache cela devrait être rare.
     177        if ($decomposer = cache_chercher_service($plugin, 'cache_decomposer')) {
     178                // On passe le plugin appelant à la fonction car cela permet ainsi de mutualiser les services de stockage.
     179                $cache = $decomposer($plugin, $cache, $configuration);
     180        } else {
     181                // On utilise le mécanisme de nommage standard du plugin Cache. De fait, on considère qu'aucun composant
     182                // n'est facultatif ou du moins qu'un seul composant est facultatif et positionné en dernier.
     183
     184                // Initialisation du tableau cache
     185                $cache = array();
     186
     187                // On supprime le dossier de base pour n'avoir que la partie spécifique du cache.
     188                $fichier_cache = str_replace($configuration['dossier_base'], '', $fichier_cache);
     189
     190                // Détermination du nom du cache sans extension et décomposition suivant la configuration du nom.               
     191                $nom_cache = basename($fichier_cache, $configuration['extension']);
     192                foreach (explode($configuration['separateur'], $nom_cache) as $_cle => $_composant) {
     193                        $cache[$configuration['nom'][$_cle]] = $_composant;
     194                }
     195
     196                // Identification d'un sous-dossier si il existe.
     197                if ($sous_dossier = dirname($fichier_cache)) {
     198                        $cache['sous_dossier'] = $sous_dossier;
     199                }
     200        }
     201
     202        return $cache;
     203}
     204
     205
    157206// -----------------------------------------------------------------------
    158207// ----------------- UTILITAIRE PROPRE AU PLUGIN CACHE -------------------
Note: See TracChangeset for help on using the changeset viewer.