Changeset 19b5ce for OWR/View.php


Ignore:
Timestamp:
11/11/13 21:51:57 (5 years ago)
Author:
pierre-alain <pierre-alain@…>
Branches:
master
Children:
cb5dd1
Parents:
26a5fe
git-author:
pierre-alain <pierre-alain@…> (11/11/13 21:51:57)
git-committer:
pierre-alain <pierre-alain@…> (11/11/13 21:51:57)
Message:

add support for memcache

File:
1 edited

Legend:

Unmodified
Added
Removed
  • OWR/View.php

    rb65617 r19b5ce  
    101101        if($cacheTime > 0) 
    102102        { 
    103             $cachedTpl = HOME_PATH.'cache'.DIRECTORY_SEPARATOR.User::iGet()->getLang().DIRECTORY_SEPARATOR.md5($tpl.serialize($datas)); 
    104             if(file_exists($cachedTpl) && (@filemtime($cachedTpl) <= (int)(Config::iGet()->get('begintime') + $cacheTime)) && 
    105                 ($f = @fopen($cachedTpl, 'rb'))) 
    106             { 
    107                 @flock($f, LOCK_SH); 
    108                 $contents = stream_get_contents($f); 
    109                 @flock($f, LOCK_UN); 
    110                 @fclose($f); 
    111             } 
    112         } 
    113  
    114         if(!isset($contents)) 
    115         { 
    116             extract($datas, EXTR_SKIP); 
    117             ob_start(); 
    118             include HOME_PATH.'tpl'.DIRECTORY_SEPARATOR.$tpl.'.html'; 
    119             $contents = ob_get_clean(); 
     103            $cachedTpl = User::iGet()->getLang().DIRECTORY_SEPARATOR.md5($tpl.serialize($datas)); 
     104            $contents = Cache::get($cachedTpl, $cacheTime); 
     105        } 
     106 
     107        if(!isset($contents) || false === $contents) 
     108        { // nothing found in cache 
     109            $contents = $this->_execute($tpl, $datas); 
    120110 
    121111            if($cacheTime > 0) 
    122112            { 
    123                 $f = @fopen($cachedTpl, 'w+b'); 
    124                 if($f) 
    125                 { 
    126                     @flock($f, LOCK_EX); 
    127                     @fwrite($f, $contents); 
    128                     @flock($f, LOCK_UN); 
    129                     @fclose($f); 
    130                 } 
     113                Cache::write($cachedTpl, $contents); 
    131114            } 
    132115        } 
     
    146129 
    147130    /** 
    148      * Returns the added microtime of all rendering 
     131     * Executes specified template and returns generated content 
     132     * 
     133     * @access public 
     134     * @author Pierre-Alain Mignot <contact@openwebreader.org> 
     135     * @param string $tpl the template name 
     136     * @param array $datas the datas 
     137     * @return string the template rendered 
     138     */ 
     139    protected function _execute($tpl, array $datas) 
     140    { 
     141        extract($datas, EXTR_SKIP); 
     142        ob_start(); 
     143        include HOME_PATH.'tpl'.DIRECTORY_SEPARATOR.$tpl.'.html'; 
     144        return ob_get_clean();    
     145    } 
     146 
     147    /** 
     148     * Returns the added microtime of all rendering processing 
    149149     * 
    150150     * @access public 
Note: See TracChangeset for help on using the changeset viewer.