1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
<?php
/**
* TEXY! CACHE DEMO
* ----------------
*
* @author David Grudl (http://davidgrudl.com)
*/
// include libs
require_once dirname(__FILE__) . 'Texy.php';
// MY OWN TEXY! OBJECT
class MyTexy extends Texy
{
var $cachePath = './cache/';
var $time;
function __construct()
{
parent::__construct();
// some configurations
$this->alignClasses['left'] = 'left';
$this->alignClasses['right'] = 'right';
}
function process($text, $useCache = TRUE)
{
$this->time = -microtime(TRUE);
if ($useCache) {
$md5 = md5($text); // md5 is key for caching
// check, if cached file exists
$cacheFile = $this->cachePath . $md5 . '.html';
$content = is_file($cacheFile) ? unserialize(file_get_contents($cacheFile)) : NULL;
if ($content) { // read from cache
list($html, $this->styleSheet, $this->headingModule->title) = $content;
} else { // doesn't exists
$html = parent::process($text);
file_put_contents($cacheFile,
serialize( array($html, $this->styleSheet, $this->headingModule->title) )
);
}
} else { // if caching is disabled
$html = parent::process($text);
}
$this->time += microtime(TRUE);
return $html;
}
}
|