如果希望自定义订阅方式(或者方法规范),可以定义subscribe方法实现。
namespace app\subscribe;
use think\Event;
class User
public function onUserLogin($user)
// UserLogin事件响应处理
public function onUserLogout($user)
// UserLogout事件响应处理
public function subscribe(Event $event)
$event->listen('UserLogin', [$this,'onUserLogin']);
$event->listen('UserLogout',[$this,'onUserLogout']);
然后在事件定义文件注册事件订阅者
return [
'bind' => [
'UserLogin' => 'app\event\UserLogin',
// 更多事件绑定
'listen' => [
'UserLogin' => ['app\listener\UserLogin'],
// 更多事件监听
'subscribe' => [
'app\subscribe\User',
// 更多事件订阅
// 触发UserLogin事件 用于执行用户登录后的一系列操作
Event::trigger('UserLogin');
或者使用助手函数
event('UserLogin');
事件是什么事件相比较中间件的优势是事件比中间件更加精准定位(或者说粒度更细),并且更适合一些业务场景的扩展。例如,我们通常会遇到用户注册或者登录后需要做一系列操作,通过事件系统可以做到不侵入原有代码完成登录的操作扩展,降低系统的耦合性的同时,还能完成业务的需求。TP6中事件的使用官网的解释,没有实例,这里简单的告诉大家如何使用,会使用之后再去发现更多操作1.事件监听命令行生成监听 php think make:listener UserLogin一般建议直接在事件定义文件(event.php
围观(2102)
只要进行了多表操作, 都应该开启事务, 如果每次遇到需要多表操作的方法都手动开事务是很累的…
所以本文使用 TP6 的 中间件 + 订阅事件 + 模型事件 进行全局的事务.
首先安装 TP6, 文档地址: https://www.kancloud.cn/manual/thinkphp6_0/1037481 直接看文档就能安装.
安装好了 TP6 可以玩玩 TP6 的多应用模式. 文档: https
运行之后就会在app下生成一个文件路径是 app\evect\UserLogin.php
生成后还要去绑定一下事件类在app\evevt.php,讲实话 这个bind我注释了也一样可以触发事件,官方解释说
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
最近遇到个这样的需求:点赞排行榜,在规定的时间内(可能有好几天),谁获赞多谁就获胜。今天试了下redis消息订阅,发现还可以,写写具体过程吧。
1.安装redis,phpredis扩展
这些网上一搜一大把
2.搜了个redis类,新建类:app\common\controller\MyRedis,代码如下:
<?php
namespace app\common\con...
tp6redis是一个在ThinkPHP6框架下使用Redis的扩展包。通过这个扩展包,开发者可以方便地在自己的应用中使用Redis的各种功能和特性。下面,我将从八个方面来介绍tp6redis的用法。
1. 配置
tp6redis的配置主要包括两个部分:Redis服务器的连接配置和缓存配置。用户可以通过修改配置文件来进行相应的设置。
2. 连接Redis服务器
在tp6redis中,用户可以通过代码或配置文件的方式来连接到Redis服务器。连接成功后,便可以使用Redis的各种功能了。
3. 字符串操作
tp6redis提供了一系列方便的字符串操作方法,如设置、获取、删除字符串等。这些方法的使用非常简单,可以轻松地实现对字符串的存储和操作。
4. 列表操作
列表是Redis中的一种数据结构,tp6redis为此提供了一系列方便的列表操作方法。通过这些方法,用户可以高效地对列表进行增删查改等操作。
5. 哈希操作
Redis中的哈希是一种存储结构化数据的方式,tp6redis提供了一系列方便的哈希操作方法。使用这些方法,可以轻松地实现对哈希类型的数据进行存储和操作。
6. 集合操作
集合是Redis中的一种存储结构,tp6redis提供了一系列方便的集合操作方法。通过这些方法,用户可以高效地对集合进行增删查改等操作。
7. 有序集合操作
有序集合是Redis中的一种重要的存储结构,tp6redis为此提供了一系列方便的有序集合操作方法。使用这些方法,可以轻松地实现对有序集合类型的数据进行存储和操作。
8. 锁的实现
在多线程或者分布式环境下,锁的实现变得尤为重要。tp6redis提供了方便的锁机制,可以避免多线程或者分布式环境下的冲突和并发问题。
总之,tp6redis是一个非常方便和实用的Redis扩展包。使用tp6redis,用户可以轻松地实现Redis的各种功能,并在应用开发中发挥重要的作用。