簡體   English   中英

雄辯(沒有Laravel)緩存實現

[英]Eloquent (without Laravel) caching implementation

我在沒有Laravel的情況下使用Eloquent,我想知道是否有一種方法可以使用(並且不依賴於Laravel組件)來集成緩存方法,然后自動緩存所有模型查詢(緩存后端可以是變量,比如說APCu或者內存緩存)。

我認為應該可以編寫一個處理這個的模型基類,但我不太確定如何實現它。 有沒有人有這方面的想法?

如果要自動緩存查詢,則必須覆蓋find(),findOrFail(),where()...方法

由於Eloquent的構建方式,您不能簡單地在自定義模型類中添加方法find()

https://laracasts.com/discuss/channels/eloquent/override-find-method/replies/72028

class MyCacheModel extends \Illuminate\Database\Eloquent\Model
{
// override methods as explained in previous link
// cache the result in redis for how long you want
}

然后在您的模型中,而不是擴展Eloquent \\ Model,現在從MyCacheModel擴展。 通過一些自定義,您可以設置緩存查詢的時間長度,如果不應緩存模型,則只需使用Eloquent \\ Model。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM