Changeset 114987 in spip-zone


Ignore:
Timestamp:
Apr 15, 2019, 1:21:24 PM (7 months ago)
Author:
cedric@…
Message:

Avec l'introduction d'un cache efficace sur SCSSPHP changement de strategie sur les var_mode :

  • sans var_mode (un calcul normal SPIP donc), on appelle pas le compilateur scssphp du moment que la css compilee est plus recente que la css source (perf issue)
  • si var_mode=calcul, on appelle le compilateur scssphp : si aucun fichier n'a change son cache interne permet de recuperer le resultat en qqms, sinon il reparse ce qu'il faut et recompile le tout
  • si var_mode=css ou var_mode=recalcul, on appelle le compulateur scssphp avec force_refresh=true c'est a dire qu'il va reparser et recompiler tout, en le remettant en cache interne au passage

En pratique, en cours de dev var_mode=calcul suffit tout le temps, et permet d'avoir un resultat rapide qui prend en compte automatiquement les eventuelles modif de css
Dans des cas tordus (?) var_mode=css permet de forcer une recompilation complete pour etre sur que tout est a jour

(A voir si on garde cette recompilation forcee sur var_mode=recalcul, pas certain que ce soit pertinent)

Location:
_plugins_/scssphp/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/scssphp/trunk/paquet.xml

    r114937 r114987  
    22        prefix="scssphp"
    33        categorie="outil"
    4         version="1.6.0"
     4        version="1.7.0"
    55        etat="test"
    66        compatibilite="[2.1.0;3.2.*]"
  • _plugins_/scssphp/trunk/plugin.xml

    r114928 r114987  
    66        <auteur>Jean-Baptiste Bourgoin</auteur>
    77        <licence>GPL 3</licence>
    8         <version>1.5.1</version>
     8        <version>1.7.0</version>
    99        <etat>test</etat>
    1010        <icon>scsscss.png</icon>
  • _plugins_/scssphp/trunk/scssphp_fonctions.php

    r114937 r114987  
    4141                // il faut prefixer avec une empreinte du import_dirs qui change le resultat
    4242                'prefix' => 'scssphp_'. substr(md5(json_encode($import_dirs)),0,4) . '_',
    43                 // TODO : force_refresh si var_more=css
    4443                'force_refresh' => false,
    4544        );
     45
     46        if (defined('_VAR_MODE') and
     47                (_request('var_mode') == 'css' or in_array(_VAR_MODE, array('css', 'recalcul'))) ) {
     48                $cache_options['force_refresh'] = true;
     49        }
    4650
    4751        // le compilateur Leafo\ScssPhp\Compiler compile le contenu
     
    179183                . '.css';
    180184
    181                 // si la feuille compilee est plus recente que la feuille source
    182                 // l'utiliser sans rien faire, sauf si recalcul explicite
     185                # si la feuille compilee est plus recente que la feuille source
     186                # l'utiliser sans rien faire, sauf si il y a un var_mode
     187                # dans ca cas on passe par la compilation qui utilise un cache et est donc rapide si rien de change
    183188                $changed = false;
    184                 if (@filemtime($f) < @filemtime($source)) {
     189                if (@filemtime($f) < @filemtime($source)){
    185190                        $changed = true;
    186191                }
    187                 if (
    188                         !$changed
    189                         and (!($mode=_request('var_mode')) or $mode != 'css')
    190                 ) {
     192
     193                // si pas change ET pas de var_mode du tout, rien a faire (performance)
     194                if (!$changed
     195                        AND !defined('_VAR_MODE'))
    191196                        return $f;
    192                 }
     197
    193198                $contenu = false;
    194199                if (!lire_fichier($source, $contenu)) {
Note: See TracChangeset for help on using the changeset viewer.