繁体   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