2011-07-13 90 views
0

一個替代當內存緩存在PHP中的工作,我靠,能像這樣替換現有值:如何做Kohana_Cache

$cache = new Memcache; 
$cache->set('foo', 'bar'); 

$cache->replace('foo', 'baz'); 

不幸的是,看起來並不像Kohana_Cache中的Kohana 3.1支持更換() 方法。在這種情況下推薦的程序是什麼?

回答

1

擴展Kohana_Cache_Memcache並做兩者之一:

  1. 添加一個檢查到Cache_Memcache::set()方法做了檢查調用Memcache::set()/Memcache::replace()

  2. 前添加Cache_Memcache::replace()方法

自從默認的Kohana緩存驅動程序後更改驅動程序時,請小心謹慎試圖保持一致(這樣,將驅動程序更改爲APC,而不會將行爲複製到它不會......你知道:)。

+1

自從我最初發布以來,我已經查看了實際驅動程序的代碼。我現在關心的是set()是否應該進行替換,或者是否應該添加顯式的replace()方法。思考? –

+1

@Noah Goodrich:我提交了一個勾號以解決這個問題,使用我發佈的代碼應該可以正常工作:http://dev.kohanaframework.org/issues/4110。儘管目前我還不確定replace是否不明確,因爲大多數消息來源指出Memcache :: set()會按照原先的要求更新現有數據。 – Kemo