Changeset 114936 in spip-zone


Ignore:
Timestamp:
Apr 12, 2019, 2:06:12 PM (7 months ago)
Author:
cedric@…
Message:

Mise a jour de la lib pour integrer le systeme de cache sur le parseur

Location:
_plugins_/scssphp/trunk/lib/scssphp
Files:
1 added
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/scssphp/trunk/lib/scssphp/scss.inc.php

    r114927 r114936  
    77    include_once __DIR__ . '/src/Base/Range.php';
    88    include_once __DIR__ . '/src/Block.php';
     9    include_once __DIR__ . '/src/Cache.php';
    910    include_once __DIR__ . '/src/Colors.php';
    1011    include_once __DIR__ . '/src/Compiler.php';
  • _plugins_/scssphp/trunk/lib/scssphp/src/Compiler.php

    r114927 r114936  
    1414use Leafo\ScssPhp\Base\Range;
    1515use Leafo\ScssPhp\Block;
     16use Leafo\ScssPhp\Cache;
    1617use Leafo\ScssPhp\Colors;
    1718use Leafo\ScssPhp\Compiler\Environment;
     
    146147    protected $sourceNames;
    147148
     149    protected $cache;
     150
    148151    private $indentLevel;
    149152    private $commentsSeen;
     
    162165     * Constructor
    163166     */
    164     public function __construct()
     167    public function __construct($cache_options = null)
    165168    {
    166169        $this->parsedFiles = [];
    167170        $this->sourceNames = [];
     171
     172        if ($cache_options) {
     173          $this->cache = new Cache($cache_options);
     174        }
    168175    }
    169176
     
    248255    protected function parserFactory($path)
    249256    {
    250         $parser = new Parser($path, count($this->sourceNames), $this->encoding);
     257        $parser = new Parser($path, count($this->sourceNames), $this->encoding, $this->cache);
    251258
    252259        $this->sourceNames[] = $path;
  • _plugins_/scssphp/trunk/lib/scssphp/src/Parser.php

    r114927 r114936  
    5454    protected static $whitePattern;
    5555
     56    protected $cache;
     57
    5658    private $sourceName;
    5759    private $sourceIndex;
     
    7577     * @param integer $sourceIndex
    7678     * @param string  $encoding
    77      */
    78     public function __construct($sourceName, $sourceIndex = 0, $encoding = 'utf-8')
     79     * @param Cache $cache
     80     */
     81    public function __construct($sourceName, $sourceIndex = 0, $encoding = 'utf-8', $cache=null)
    7982    {
    8083        $this->sourceName       = $sourceName ?: '(stdin)';
     
    9699                : '/' . $commentSingle . '[^\n]*\s*|(' . static::$commentPattern . ')\s*|\s+/AisS';
    97100        }
     101
     102        if ($cache) {
     103            $this->cache = $cache;
     104        }
    98105    }
    99106
     
    143150    public function parse($buffer)
    144151    {
     152
     153        if ($this->cache) {
     154            $cache_key = $this->sourceName . ":" . md5($buffer);
     155            $parse_options = array(
     156                'charset' => $this->charset,
     157                'utf8' => $this->utf8,
     158            );
     159            $v = $this->cache->getCache("parse", $cache_key, $parse_options);
     160            if (!is_null($v)) {
     161                return $v;
     162            }
     163        }
     164
    145165        // strip BOM (byte order marker)
    146166        if (substr($buffer, 0, 3) === "\xef\xbb\xbf") {
     
    181201
    182202        $this->restoreEncoding();
     203
     204        if ($this->cache) {
     205            $this->cache->setCache("parse", $cache_key, $this->env, $parse_options);
     206        }
    183207
    184208        return $this->env;
Note: See TracChangeset for help on using the changeset viewer.