• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Eloquent ORM该怎么监听它的事件然后使用memcache缓存数据

php 搞代码 4年前 (2022-01-23) 29次浏览 已收录 0个评论
文章目录[隐藏]

首先我的网站目前使用了这些组件

"require": {        "symfony/http-foundation": "^3.1",        "symfony/routing": "^3.1",        "symfony/http-kernel": "^3.1",        "symfony/event-dispatcher": "^3.1",        "pimple/pimple": "~3.0",        "illuminate/database": "^5.3"    },

因为我用的是symfony的event-dispatcher组件,而没有用laravel的events组件,
所以Eloquent ORM服务初始化的时候这个自带的设置事件监听的功能并不能用

use Illuminate\Events\Dispatcher;use Illuminate\Container\Container;$capsule->setEventDispatcher(new Dispatcher(new Container));

而我又不想使用两个功能重复的组件,所以没法监听到Eloquent ORM的事件然后做缓存。
我想实现的主要是用memcache缓存Eloquent ORM查询事件的数据,这一步该怎么做呢…

回复内容:

首先我的网站目前使用了这些组件

"require": {        "symfony/http-foundation": "^3.1",        "symfony/routing": "^3.1",        "symfony/http-kernel": "^3.1",        "symfony/event-dispatcher": "^3.1",        "pimple/pimple": "~3.0",        "illuminate/database": "^5.3"    },

因为我用的是symfony的event-dispatcher组件,而没有用laravel的events组件,
所以Eloquent ORM服务初始化的时候这个自带的设置事件监听的功能并不能用

use Illuminate\Events\Dispatcher;use Illuminate\Container\Container;$capsule->setEventDispatcher(new Dispatcher(new Container));

而我又不想使用两个功能重复的组件,所以没法监听到Eloq%本文来源gaodai#ma#com搞*代#码9网#搞gaodaima代码uent ORM的事件然后做缓存。
我想实现的主要是用memcache缓存Eloquent ORM查询事件的数据,这一步该怎么做呢…

缓存查询的数据建议使用 remember 方法。

$value = Cache::remember('users', $minutes, function() {    return DB::table('users')->get();});

有缓存就直接返回缓存里的数据,否则从数据库查询并设置缓存后返回数据。

至于你说的替换了event dispatcher,怎么监听model事件,可以在model或者基类model里写, 例如:

protected static function boot(){    parent::boot();        static::created(function ($model) {        // cache model    });}

每个事件都有其对应的静态方法:saving saved updating updated creating created deleting deleted

以上就是Eloquent ORM该怎么监听它的事件然后使用memcache缓存数据的内容,更多相关内容请关注搞代码(www.gaodaima.com)!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Eloquent ORM该怎么监听它的事件然后使用memcache缓存数据

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址