77 lines
1.6 KiB
PHP
77 lines
1.6 KiB
PHP
<?php
|
|
/*
|
|
* To change this template, choose Tools | Templates
|
|
* and open the template in the editor.
|
|
*/
|
|
|
|
/**
|
|
* Description of QueryCache
|
|
*
|
|
* @author User
|
|
*/
|
|
class QueryCache {
|
|
|
|
private $query;
|
|
private $cacheQueryName;
|
|
private $cachePathFile;
|
|
|
|
public function __construct($queryCacheName,$query)
|
|
{
|
|
if(QUERYCACHE_ENABLE == true)
|
|
{
|
|
$this->cachePathFile = PATH_CORE . "/model/QueryCacheTemp.class.php";
|
|
$this->query = $query;
|
|
$this->cacheQueryName = $queryCacheName;
|
|
$this->Write();
|
|
}
|
|
}
|
|
|
|
public function Write()
|
|
{
|
|
|
|
// jesli nie ma query w tablicy i nie bylo juz w tym skrypcie dodawane
|
|
if(!isset(QueryCacheTemp::$cacheQuery[$this->cacheQueryName]) && Registry::Get($this->cacheQueryName) != true)
|
|
{
|
|
$fp = fopen($this->cachePathFile,"r+");
|
|
|
|
if(count(QueryCacheTemp::$cacheQuery) > 0 || Registry::Get("cacheQueryItems") > 0)
|
|
$cacheFile=",";
|
|
else
|
|
$cacheFile="";
|
|
|
|
$cacheFile.="
|
|
\"$this->cacheQueryName\" => \"$this->query\");}?>";
|
|
|
|
if(Registry::Get("cacheQueryItems") > 0)
|
|
fseek($fp, -5,SEEK_END);
|
|
else
|
|
fseek($fp, -5,SEEK_END);
|
|
|
|
fputs($fp, $cacheFile);
|
|
|
|
fclose($fp);
|
|
$item = true;
|
|
|
|
if(Registry::Exists("cacheQueryItems"))
|
|
$cacheQueryItems = Registry::Get("cacheQueryItems");
|
|
else
|
|
$cacheQueryItems = 0;
|
|
|
|
Registry::Set($this->cacheQueryName, $item);
|
|
Registry::Set("cacheQueryItems", ++$cacheQueryItems);
|
|
}
|
|
}
|
|
|
|
public function Clear()
|
|
{
|
|
$fp = fopen($this->cachePathFile,"r+");
|
|
$cacheFile='<?php
|
|
class QueryCacheTemp
|
|
{
|
|
static $cacheQuery = array(
|
|
);}?>';
|
|
fputs($fp, $cacheFile);
|
|
fclose($fp);
|
|
}
|
|
}
|
|
?>
|