Вход Регистрация
Файл: sys/inc/classes/class.Cache.php
Строк: 48
<?php 

class Cache
{
    private 
$cache_time
    
    public function 
__construct($time 30) {
        
$this->cache_time $time;
    }
    
    public function 
read($cacheId$json false$cache_pach false
    {
        
$cache $this->_cache($cacheId$json$cache_pach);
        
        if (
$cache) {
            return 
$cache
        } 
        
        return 
false;
    }
    
    public function 
write($cacheId$data$json false
    {
        
$cache $this->_cache_create($cacheId$data$json); 
        
        if (
$cache) {
            return 
$cache
        } 
        
        return 
false;
    }
    
    public function 
delete($cacheId
    {
        
$cache $this->_cache_delete($cacheId); 
    }
    
    private function 
_cache($cacheId$json false$cache_pach false
    {
        
$url H.'sys/tmp/cache.' $cacheId '.ser'
        
        if (!
$cacheId) {
            return 
false;
        }
        
        if (
$cache_pach && is_file($url)) {
            return 
$url
        } 
        
        elseif (
is_file($url) && (TIME $this->cache_time) < fileatime($url)) {
            if (
$json) {
                return 
json_decode(file_get_contents($url), 1); 
            } else {
                return 
file_get_contents($url); 
            }
        } else {
            
$this->_cache_delete($cacheId); 
        }
        
        return 
false;
    }
    
    private function 
_cache_create($cacheId$data false$json false
    {
        if (!
$cacheId) {
            return 
false;
        }
        
        
$this->_cache_delete($cacheId);
        
        if (
file_put_contents(H.'sys/tmp/cache.' $cacheId '.ser', ($json json_encode($data) : $data))) {
            return 
$this->_cache($cacheId$json);
        }
        
        return 
false;
    }
    
    private function 
_cache_delete($cacheId
    {
        if (
is_file(H.'sys/tmp/cache.' $cacheId '.ser')) {
            
unlink(H.'sys/tmp/cache.' $cacheId '.ser');
        }
    }
}
Онлайн: 2
Реклама