Changeset 125412 in spip-zone


Ignore:
Timestamp:
Aug 18, 2020, 6:59:20 PM (6 months ago)
Author:
Eric Lupinacci
Message:

Mise à jour du guide.
Il est maintenant possible de choisir le niveau de surcharge : soit pour le couple (plugin, type de cache) soit pour le plugin uniquement.

Location:
_plugins_/cache/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/cache/trunk

    • Property subgit:lock:4037eca62b37f4cdf0ca0830e17639abb2e47fbe deleted
    • Property subgit:lock:64b4d00029d0e3a875797b700c6ac6f38ce938a8 set to 2020-08-18T21:12:38.293
  • _plugins_/cache/trunk/ezcache/ezcache.php

    r125411 r125412  
    5555        // par celles par défaut.
    5656        $configurations_plugin = array();
    57         if ($configurer = service_cache_chercher($plugin, 'cache_configurer')) {
     57        if ($configurer = service_cache_chercher($plugin, '', 'cache_configurer')) {
    5858                $configurations_plugin = $configurer($plugin);
    5959        }
     
    164164        // Le plugin utilisateur peut fournir un service propre pour construire le chemin complet du fichier cache.
    165165        // Néanmoins, étant donné la généricité du mécanisme offert par le plugin Cache cela devrait être rare.
    166         if ($composer = service_cache_chercher($plugin, 'cache_composer')) {
     166        if ($composer = service_cache_chercher($plugin, $configuration['type_cache'], 'cache_composer')) {
    167167                $fichier_cache = $composer($plugin, $cache, $configuration);
    168168        } else {
     
    239239        // Le plugin utilisateur peut fournir un service propre pour construire le chemin complet du fichier cache.
    240240        // Néanmoins, étant donné la généricité du mécanisme offert par le plugin Cache cela devrait être rare.
    241         if ($decomposer = service_cache_chercher($plugin, 'cache_decomposer')) {
     241        if ($decomposer = service_cache_chercher($plugin, $configuration['type_cache'], 'cache_decomposer')) {
    242242                $cache = $decomposer($plugin, $fichier_cache, $configuration);
    243243        } else {
     
    307307        // Le plugin utilisateur peut fournir un service propre pour construire le chemin complet du fichier cache.
    308308        // Néanmoins, étant donné la généricité du mécanisme offert par le plugin Cache cela devrait être rare.
    309         if ($completer = service_cache_chercher($plugin, 'cache_completer')) {
     309        if ($completer = service_cache_chercher($plugin, $configuration['type_cache'], 'cache_completer')) {
    310310                $cache = $completer($plugin, $cache, $fichier_cache, $configuration);
    311311        }
     
    336336        // Le plugin utilisateur peut fournir un service propre pour décoder le contenu du cache.
    337337        // Néanmoins, étant donné la généricité du mécanisme offert par le plugin Cache cela devrait être rare.
    338         if ($decoder = service_cache_chercher($plugin, "cache_decoder_${encodage}")) {
     338        if ($decoder = service_cache_chercher($plugin, $configuration['type_cache'], "cache_decoder_${encodage}")) {
    339339                $contenu = $decoder($plugin, $contenu);
    340340        } else {
     
    407407                // Si le fichier a passé la vérification de péremption, il est possible de rajouter des tests spécifiques
    408408                // au plugin utilisateur.
    409                 if ($valider = service_cache_chercher($plugin, 'cache_valider')) {
     409                if ($valider = service_cache_chercher($plugin, $configuration['type_cache'], 'cache_valider')) {
    410410                        $est_valide = $valider($plugin, $cache, $configuration);
    411411                }
     
    420420
    421421/**
    422  * Cherche une fonction donnée en se basant sur le plugin appelant.
     422 * Cherche une fonction donnée en se basant sur le plugin appelant et le type de cache.
    423423 * Si le plugin utilisateur ne fournit pas la fonction demandée la chaîne vide est renvoyée.
    424424 *
    425425 * @internal
    426426 *
    427  * @param string $plugin   Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
    428  *                         un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
    429  * @param bool   $fonction Nom de la fonction de service à chercher.
     427 * @param string $plugin     Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
     428 *                           un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
     429 * @param string $type_cache Type de cache identifiant la configuration dans la liste des configurations de cache du plugin.
     430 *                           Si on veut forcer un service plugin uniquement il faut passer la chaine vide.
     431 * @param bool   $fonction   Nom de la fonction de service à chercher.
    430432 *
    431433 * @return string Nom complet de la fonction si trouvée ou chaine vide sinon.
    432434 */
    433 function service_cache_chercher($plugin, $fonction) {
     435function service_cache_chercher($plugin, $type_cache, $fonction) {
    434436        $fonction_trouvee = '';
    435437
     
    437439        if ($plugin != 'ezcache') {
    438440                include_spip("ezcache/${plugin}");
    439                 $fonction_trouvee = "${plugin}_${fonction}";
    440                 if (!function_exists($fonction_trouvee)) {
    441                         $fonction_trouvee = '';
     441
     442                // On teste dans l'ordre la fonction la plus précise, celle correspondant au couple (plugin, type de cache) puis
     443                // si elle n'existe pas, celle correspondant au plugin seul.
     444                $fonction_trouvee = "${plugin}_${type_cache}_${fonction}";
     445                if (
     446                        !$type_cache
     447                        or !function_exists($fonction_trouvee)
     448                ) {
     449                        $fonction_trouvee = "${plugin}_${fonction}";
     450                        if (!function_exists($fonction_trouvee)) {
     451                                $fonction_trouvee = '';
     452                        }
    442453                }
    443454        }
  • _plugins_/cache/trunk/formulaires/cache_vider.php

    r125407 r125412  
    4848                // pour le type de cache concerné. Les valeurs doivent suivre la structure standard pour l'affichage.
    4949                if ($caches) {
    50                         if ($charger = service_cache_chercher($plugin, "${_type_cache}_cache_formulaire_charger")) {
     50                        if ($charger = service_cache_chercher($plugin, $_type_cache, "cache_formulaire_charger")) {
    5151                                // Le plugin utilisateur doit suivre la structure minimale suivante :
    5252                                // -- ['_caches'][$_type_cache][$groupe] = array('titre', 'liste', 'explication')
     
    6161                                $valeurs['_caches'][$_type_cache][$plugin] = array(
    6262                                        'titre' => '',
     63                                        'explication' => '',
    6364                                        'liste' => $caches
    6465                                );
  • _plugins_/cache/trunk/paquet.xml

    r125397 r125412  
    22        prefix="ezcache"
    33        categorie="outil"
    4         version="1.0.0"
    5         etat="dev"
     4        version="1.0.1"
     5        etat="test"
    66        compatibilite="[3.2.0;3.2.*]"
    77        logo="ezcache_logo-64.png"
Note: See TracChangeset for help on using the changeset viewer.