2011-02-27 31 views
1

我正在尋找一個代碼緩存獨立PHP代碼的解決方案。尋找一個基於PHP驅動程序的緩存包裝

某種提供緩存獨立層的類或庫。

因此,我可以開始編碼,並在開始時使用基於文件的緩存,並在項目加載時切換到apc/eaccellerator/memcached。

我知道,這並不難,你自己編碼,但那也是我相信這樣的事情已經存在的原因。而我寧願使用已經測試過的解決方案:)

在此先感謝您的意見!

編輯: 對不起,但我需要一個獨立的庫,應該與現有的結構很好玩。

+0

看一看:https://github.com/fluxbb/cache – seriousdev 2011-02-27 13:17:47

+0

@sexyprout我不想偷你的時間,但如果你想得到適當的信貸爲您的答案請發佈它作爲答案...在這寫你的提示是我的要求的最佳解決方案。 – 2011-02-27 14:22:56

回答

2

這種解決方案應該存在於幾乎任何PHP框架中。

的一對夫婦的例子

0

爲什麼不能創建自己的緩存系統,它不是真的那麼複雜,只需要加載驅動程序的結構,有一個API接口來實現,你要善於

class PHPCache 
{ 
    protected $Driver; 
    public function __construct($driver) 
    { 
     require_once 'drivers/' . $drivers . '.driver.php'; 
     $driver = "PHPCacheDriver_" . $driver; 

     $this->Driver = new $driver; 
    } 


    public function create($key,$value) 
    { 
     return $this->Driver->create($key,$value); 
    } 

    public function read($key,$value) 
    { 
     return $this->Driver->read($key,$value); 
    } 

    public function update($key,$value) 
    { 
     return $this->Driver->update($key,$value); 
    } 

    public function remove($key) 
    { 
     return $this->Driver->remove($key); 
    } 
} 

,然後將每個驅動程序實現的接口並相應地提取數據。

+1

我知道這並不難,這就是爲什麼我認爲有人可能以前做過... – 2011-02-27 14:25:18

+0

很難正確實施它。併發訪問同一個不存在的緩存怎麼樣?如果你想鎖定和一切,那麼獲得這個權利是非常棘手的。 – cweiske 2012-02-15 08:34:26

0

PEAR具有Cache包,它具有用於容器:

  • 數據庫(PEAR DB LIB,PEAR MDB2 LIB,PHPLIB分貝)
  • 文件
  • 共享內存(SHM)
  • msession

PEAR的​​僅使用文件。

相關問題