thinkphp 事件

Posted melovemingming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 事件相关的知识,希望对你有一定的参考价值。

使用助手函数注册事件

<?php
namespace app\index\controller;

use app\index\model\User;
class Index
{

    public function Index(){
        // 触发UserLogin事件 使用助手函数
        event('UserLogin');
        return "ming";
    }

}

生成事件类

php think make:event UserLogin

事件类添加方法

<?php

namespace app\event;

use app\index\model\User;

class UserLogin{
    public $user;

    public function _construct(User $user){
        $this->user = $user;
    }
}

这里依赖于model目录下的User类

事件类添加事件标识

此时目录如下
技术图片

添加标识

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <[email protected]>
// +----------------------------------------------------------------------

// 事件定义文件
return [
    'bind'      => [
        'UserLogin' => 'app\event\UserLogin',
    ],

    'listen'    => [
        'AppInit'  => [],
        'HttpRun'  => [],
        'HttpEnd'  => [],
        'LogLevel' => [],
        'LogWrite' => [],
    ],

    'subscribe' => [
    ],
];

此时访问 http://localhost:8082/ 可以发现已经访问成功

事件监听

手动注册一个事件监听


    /**
     * 事件监听
     */
    public function listen(){
        Event::listen('UserLogin', function ($user){
            
        });
    }

可以使用命令行生成事件监听

php think make:listener UserLogin

事件订阅同理

以上是关于thinkphp 事件的主要内容,如果未能解决你的问题,请参考以下文章

Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段

ThinkPHP tp Codeigniter ci 微信开发 控制器代码 示例 实例 模拟http请求 获取acces_token 创建自定义菜单 点击事件 转多客服

ThinkPHP项目笔记之MVC篇

如何将CKeditor编辑器的上传和thinkphp结合

ThinkPHP3.2.3自带的分页用法--很简单实用

如何使用事件侦听器来加载动画片段的循环