2012-06-16 6 views
0

도메인이 로컬 호스트가 아닌 경우 opencart에서 캐시를 쓰거나 가져 오는 방법은 어떻습니까?도메인이 로컬 호스트가 아닌 경우 Opencart 만 캐시합니다.

캐싱을 담당하는 클래스는 다음과 같습니다. 당신의 get 함수에 그냥 빨리 패치

class Cache { 
    private $expire = 3600; 

    public function __construct() { 
     $files = glob(DIR_CACHE . 'cache.*'); 

     if ($files) { 
      foreach ($files as $file) { 
       $time = substr(strrchr($file, '.'), 1); 

       if ($time < time()) { 
        if (file_exists($file)) { 
         unlink($file); 
        } 
       } 
      } 
     } 
    } 

    public function get($key) { 
     $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*'); 

     if ($files) { 
      $cache = file_get_contents($files[0]); 

      return unserialize($cache); 
     } 
    } 

    public function set($key, $value) { 
     $this->delete($key); 

     $file = DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.' . (time() + $this->expire); 

     $handle = fopen($file, 'w'); 

     fwrite($handle, serialize($value)); 

     fclose($handle); 
    } 

    public function delete($key) { 
     $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*'); 

     if ($files) { 
      foreach ($files as $file) { 
       if (file_exists($file)) { 
        unlink($file); 
       } 
      } 
     } 
    } 
} 

답변

1

...

사용자 설정 기능

public function set($key, $value) { 
    if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {return; } 

에서

public function get($key) { 
    if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {return;} 

하지만 당신이 때 기억 약 t 오 opencart의 핵심은 당신이 VQmod

0

변경에게 get 방법을 사용할 수 있습니다 패치 :

if ($files && $_SERVER['HTTP_HOST'] !== 'localhost') { 

당신은 너무 set에서 같은 논리를 사용하여 디스크 쓰기를 저장합니다.

관련 문제