Changeset 112625 in spip-zone


Ignore:
Timestamp:
Dec 4, 2018, 12:01:49 PM (2 weeks ago)
Author:
jluc@…
Message:

#CACHE et var_cache n'ont pas besoin de mémoization - sf exception

Location:
_plugins_/cachelab/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/cachelab/trunk/inc/cachelab.php

    r112520 r112625  
    1111}
    1212
     13//
     14// Applique une action sur un cache donné
     15//
     16// Nécessite Mémoization (OK pour toutes les méthodes).
     17//
     18// renvoie un booléen indiquant si l'action a pu être appliquée ou non
     19//
    1320function cachelab_applique ($action, $cle, $data=null, $options='') {
    1421global $Memoization;
     22        if (!isset($Memoization) or !$Memoization) {
     23                spip_log("cachelab_applique ($action, $cle...) : Memoization n'est pas activé", 'cachelab_erreur');
     24                return false;
     25        }
     26
    1527static $len_prefix;
    1628        if (!$len_prefix)
     
    5567}
    5668
    57 // $chemin : liste de chaines à tester dans le chemin du squelette, séparées par |
    58 //      OU une regexp (hors délimiteurs et modificateurs) si la méthode est 'regexp'
     69//
     70// cachelab_cibler :
     71//      applique une action donnée à tous les caches vérifiant certaines conditions
     72//
     73// uses apcu_cache_info()
     74//      et donc nécessite que Memoization soit activé avec APC ou APCu
     75//
    5976function cachelab_cibler ($action, $conditions=array(), $options=array()) {
    6077global $Memoization;
    61         if (!$Memoization or !in_array($Memoization->methode(), array('apc', 'apcu')))
    62                 die ("Il faut mémoization avec APC ou APCu");
     78        if (!isset($Memoization) or !$Memoization or !in_array($Memoization->methode(), array('apc', 'apcu'))) {
     79                spip_log("cachelab_cibler($action...) : le plugin Mémoization doit être activé avec APC ou APCu", 'cachelab_erreur');
     80                die ("cachelab_cibler($action...) : le plugin Mémoization doit être activé avec APC ou APCu");
     81        }
    6382
    6483        // filtrage
     
    228247        }
    229248
    230 
    231249        if ($do_chrono) {
    232250                $stats['chrono'] = microtime_do ('end', 'ms');
  • _plugins_/cachelab/trunk/inc/cachelab_invalideur.php

    r112605 r112625  
    3333        if (!$modif) {
    3434                return;
     35        }
     36       
     37global $Memoization;
     38static $len_prefix;
     39        if (!isset($Memoization) or !$Memoization or !in_array($Memoization->methode(), array('apc', 'apcu'))) {
     40                spip_log("cachelab_applique ($action, $cle...) : Memoization n'est pas activé", 'cachelab_erreur');
     41                return false;
    3542        }
    3643
  • _plugins_/cachelab/trunk/inc/cachelab_utils.php

    r112600 r112625  
    4040
    4141function split_f_arg($f, $arg='') {
    42         spip_log("split_f_arg($f, $arg\n".debug_get_stack(), "cachelab_OBSOLETE");
    43         if (strpos($f, ' ')) {
    44                 $fparts = array_filter(explode(' ',$f));
    45                 $f = array_shift($fparts);
    46                 $arg = implode(' ', $fparts);
    47         }
    48         return array ($f, $arg);
     42        spip_log("split_f_arg($f, $arg", "cachelab_OBSOLETE");
     43        return split_first_arg ($f, $arg);
    4944}
     45
     46function slug_chemin($chemin, $sep='_') {
     47        return str_replace ('/', $sep, $chemin);
     48}
     49
  • _plugins_/cachelab/trunk/paquet.xml

    r112605 r112625  
    22        prefix="cachelab"
    33        categorie="outil"
    4         version="0.8.2"
     4        version="0.8.3"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.2.*]"
     
    1212        <auteur lien="https://contrib.spip.net/JLuc">JLuc</auteur>
    1313        <credit lien="https://thenounproject.com/term/lab/1796357/">Icone de Nawicon Studio, Licence Creative Commons</credit>
    14         <necessite nom="memoization"/>
    1514</paquet>
  • _plugins_/cachelab/trunk/public/cachelab_balises.php

    r112596 r112625  
    212212                return null;
    213213        }
    214         $source = $cache['source'];
    215         $source_file = str_replace(array('/','.'), '_', $source);
     214        $source_limace = slug_chemin($cache['source']);
    216215        $arg=trim($arg);
    217         if ($arg) {
    218                 if (strpos($arg, '/')) {
     216        if ($arg) { 
     217                if (strpos($arg, '/')) {        #CACHE{log i/j}
    219218                        $ij=explode('/',$arg);
    220219                        $c = $cache[$i=trim(array_shift($ij))];
    221220                        $c = $c[trim($j=array_shift($ij))];
    222221                }
    223                 else {
     222                else {                                          #CACHE{log i}
    224223                        $c = $cache[$arg];
    225224                }
    226225        }
    227226        else
    228                 $c = $cache;
    229         spip_log ("cache[$arg] : ".print_r($c,1), "cachelab_".$source_file);
     227                $c = $cache;                            #CACHE{log}
     228        spip_log ("cache[$arg] : ".print_r($c,1), "cachelab_".$source_limace);
    230229}
    231230
     
    257256                return null;
    258257        }
    259         $source = $cache['source']; 
    260         $source_file = str_replace(array('/','.'), '_', $source);
     258        $source = $cache['source'];
     259        $source_limace = slug_chemin($source);
    261260        list($func, $what) = split_first_arg($totarg);
    262261       
     
    286285                                spip_log ("$source : session n'est pas '$what'. invalideurs=".print_r($invalideurs,1), "cachelab_assertsession");
    287286                        break;
    288         case 'debug' : // debug est OBSOLETE
    289                 spip_log ("#CACHE{session debug}", "cachelab_OBSOLETE");
    290                 // nobreak;
    291287        case 'insert' :
    292                 $cache['texte'] .= '<'."?php echo '<div class=\"debug cachelab\">$source_file sessionné : $sess</div>' ?>";
     288                global $Memoization;
     289                if (!isset($Memoization)) {
     290                        spip_log ("Erreur dans $source : #CACHE{session insert} nécessite que le plugin Memoization soit activé", 'cachelab_erreur');
     291                        echo "<div class='debug cachelab'><h6>Erreur dans $source : #CACHE{session insert} nécessite que le plugin Memoization soit activé</h6></div>";
     292                        break;
     293                }
     294                $cache['texte'] .= '<'."?php echo '<div class=\"debug cachelab\"><h6>$source sessionné : $sess</h6></div>' ?>";
    293295                $cache['process_ins'] = 'php';
    294296                break;
    295297        case 'echo' :
    296                 echo "<div class='debug cachelab'>$source_file sessionné : $log</div>";
     298                echo "<div class='debug cachelab'><h6>$source sessionné : $sess</h6></div>";
    297299                break;
    298300        case 'log' :
    299                 spip_log ("session : $sess", "cachelab_".$source_file);
     301                spip_log ('session : '.$sess, 'cachelab_session_'.$source_limace);
    300302                break;
    301303        default :
    302                 spip_log ("Syntaxe incorrecte dans $source_file : $func inconnu dans #CACHE{session $totarg}", 'cachelab_erreur');
     304                spip_log ("Syntaxe incorrecte dans $source : $func inconnu dans #CACHE{session $totarg}", 'cachelab_erreur');
    303305                break;
    304306        }
Note: See TracChangeset for help on using the changeset viewer.