2013-10-01 40 views
0

我在Laravel 4應用程序中使用memcached作爲緩存的驅動程序。驅動程序的Laravel實現對任何方法都沒有返回值,我希望有人能幫助我弄清楚如何獲得我需要的內容,無論是在Laravel中還是在幫助我擴展驅動程序。如何從調用緩存外觀中獲取結果?

具體而言,我需要的是撥打add的呼叫狀態......所以,如果add成功,如果失敗,我會得到真或假。今天,我爲每次調用都獲得null,這在試圖將memcached用於簡單鎖定系統時並不是非常有用。

任何人都可以提供解決方案嗎?

編輯:我在看MemcachedStore類,甚至沒有add函數。所以,我想我只是擴展這個類,但即使StoreInterfaceMemcachedStore實現的接口)沒有add函數,Cache::add()也會調用該函數嗎?我猜我在問,Cache::add()怎麼會映射到我的執行add()

回答

0

一個接口不需要擁有該接口實現的所有方法,但擴展接口的類必須實現所有接口方法。

實現將有不同的方法,因爲不同的實現會做不同的事情。

你要找什麼是高速緩存儲存庫:

vendor\laravel\framework\src\Illuminate\Cache\Repository.php 

在那裏,你會發現add()方法,但是你確定這是一個你在找什麼?

Laravel使用put()get()來保存緩存信息,您可以在文檔中看到:http://laravel.com/docs/cache

除此之外,我認爲我們需要更多的信息。

+0

是的,我確定我需要'add',因爲我需要知道密鑰是否已經存在於緩存中......如果密鑰已經存在,'put'將替換該值。我最終做的只是調用'Cache :: getMemcached()'來獲取Memcached實例,而我只是從該對象中調用函數。我想不是很優雅,但它完成了工作。截止日期之後我會擔心優雅。 – Thelonias

+0

哈哈,是的,有時我們只需要完成這件事。祝你好運! –