目录
回复内容:
首页 后端开发 php教程 Eloquent ORM该怎么监听它的事件然后使用memcache缓存数据

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

Sep 03, 2016 am 12:14 AM


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

"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));
登录后复制
登录后复制

而我又不想使用两个功能重复的组件,所以没法监听到Eloquent 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缓存数据的内容,更多相关内容请关注PHP中文网(www.php.cn)!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何使用PHP开发中的Memcache? 如何使用PHP开发中的Memcache? Nov 07, 2023 pm 12:49 PM

在Web开发中,我们经常需要使用缓存技术来提高网站的性能和响应速度。Memcache是一种流行的缓存技术,它可以缓存任何数据类型、支持高并发和高可用性。本文将介绍如何使用PHP开发中的Memcache,并提供具体代码示例。一、安装Memcache要使用Memcache,我们首先需要在服务器上安装Memcache扩展。在CentOS操作系统中,可以使用以下命令

如何清理QQ浏览器的缓存数据 如何清理QQ浏览器的缓存数据 Jan 29, 2024 pm 06:03 PM

QQ浏览器缓存数据怎么清理?QQ浏览器是一款拥有大量用户的搜索软件,优秀的速度和丰富的功能,使很多用户经常性的使用这款软件。我们都知道软件长时间使用以后,就会留下很多缓存文件和别的垃圾信息,如果不及时清理,就会拖慢浏览器的反应速度。这个时候就需要我们及时的经常性的清理,清理缓存后会更方便使用,反应速度更好。下面就让我们一起来看看,在使用QQ浏览器的时候怎么清理缓存的吧!QQ浏览器缓存数据清理方法和步骤介绍第一步:打开QQ浏览器,在主页面点击右上角的“菜单”栏。第二步:在下拉的菜单栏选项中,点击打

Laravel开发:如何使用Laravel Eloquent实现多态关联? Laravel开发:如何使用Laravel Eloquent实现多态关联? Jun 13, 2023 pm 04:41 PM

Laravel开发:如何使用LaravelEloquent实现多态关联?多态关联是LaravelEloquent的一项重要功能,它可以使一个模型和多个不同的模型建立关联关系。在实际应用中,处理不同类型的数据相对简单且高效,尤其在数据库设计上非常方便。在本文中,我们将讨论如何使用LaravelEloquent实现多态关联。一、什么是多态关联?多态

如何提升ECShop网站速度?从根源入手解决问题 如何提升ECShop网站速度?从根源入手解决问题 Mar 12, 2024 pm 05:00 PM

标题:如何提升ECShop网站速度?从根源入手解决问题,需要具体代码示例随着电子商务行业的快速发展,ECShop作为一款颇受欢迎的开源电商系统,在许多网站中被广泛采用。然而,随着网站访问量的增加和功能的不断扩充,网站速度变得尤为关键,因为用户体验和搜索引擎排名都与网站速度密切相关。那么,如何提升ECShop网站的速度呢?本文将从根源入手,探讨一些具体的优化方

如何在 Laravel 中使用 Eloquent 实现数组转对象? 如何在 Laravel 中使用 Eloquent 实现数组转对象? Apr 29, 2024 pm 05:42 PM

在Laravel中使用Eloquent将数组转换成对象需要以下步骤:创建Eloquent模型。使用Eloquent的select方法获取结果并转换为数组。使用ArrayObject将数组转换成对象。获取对象属性以访问数组的值。

PHP开发中如何使用Memcache进行高效的数据读写操作? PHP开发中如何使用Memcache进行高效的数据读写操作? Nov 07, 2023 pm 03:48 PM

在PHP开发中,使用Memcache缓存系统可以大大提高数据读写的效率。Memcache是一种基于内存的缓存系统,它可以将数据缓存在内存中,避免频繁的读写数据库。本文将介绍如何在PHP中使用Memcache进行高效的数据读写操作,并提供具体的代码示例。一、安装和配置Memcache首先,需要在服务器上安装Memcache扩展。可以通过

番茄小说缓存数据太多怎么清理 番茄小说缓存数据太多怎么清理 Feb 27, 2024 am 11:52 AM

番茄小说是一款提供海量小说资源的软件,无论你是小说爱好者还是日常喜欢阅读的人,都可以通过这款软件找到你想看的小说资源。每天都有大量新小说更新,让你有更多选择。同时,软件还有详细的小说分类,方便用户挑选。除了丰富的小说资源,番茄小说的阅读功能也非常强大,是很多用户的首选软件。但是使用久了以后很容易占用手机内存,那么究竟该如何清理呢,这篇教程就将为大家带来详细的步骤介绍,希望能帮助到大家。番茄小说怎么清除缓存?1、首先打开番茄小说,选择底部的我的。2、在我的页面里选择设置的选项。3、接着在设置页面找

PHP开发中如何使用Memcache进行高效的数据写入和查询? PHP开发中如何使用Memcache进行高效的数据写入和查询? Nov 07, 2023 pm 01:36 PM

PHP开发中如何使用Memcache进行高效的数据写入和查询?随着互联网应用的不断发展,对于系统性能的要求越来越高。在PHP开发中,为了提高系统的性能和响应速度,我们经常会使用各种缓存技术。而其中一个常用的缓存技术就是Memcache。Memcache是一种高性能的分布式内存对象缓存系统,可以用来缓存数据库查询结果、页面片段、会话数据等。通过将数据存储在内存

See all articles