[英]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.