跟老姚学前端,课程体系更完善,10%基础 + 90%实战演练,快人一步学编程

扫一扫浏览

tp6的事件绑定问题,其实是这样用的

未结贴
0 5053
学习tp6站长未认证 2019-12-30 13:48:44
收藏

看了官方的事件文档后,很多一直测试事件绑定,怎么测试都感觉没啥用,当然文档也给出了使用方法

return [
    'bind'    =>    [
        'UserLogin' => 'app\event\UserLogin',
        // 更多事件绑定
    ],
];

然后在其实地方通过Event::trigger('UserLogin');触发,但是你会发现基本没什么卵用,其实是下面的代码误导了大家

return [
    'bind'    =>    [
        'UserLogin' => 'app\event\UserLogin',
        // 更多事件绑定
    ],
    'listen'  =>    [
        'UserLogin'    =>    ['app\listener\UserLogin'],
        // 更多事件监听
    ],
];

两个都一样的,感觉不到有啥区别,你们会一直这样用,那到底怎么用的呢?官方话述“如果你定义了事件类 就可以简化事件的监听时使用的事件标识 如果没有使用事件类的话 事件标识绑定是不需要的”,你对这句话理解多少了,或还是一脸蒙B

首先你要看出他的用义"事件绑定",那肯定是绑定事件的呀,所选必须要有事件,不然绑定什么呢,所以正确的用法是这样的

return [
    'bind'    =>    [
        'ul' => 'UserLogin',
        // 更多事件绑定
    ],
    'listen'  =>    [
        'UserLogin'    =>    ['app\listener\UserLogin'],
        // 更多事件监听
    ],
];

发现没有bind的值是listen的key,是为了简化事件名的,哈哈,反正我目前来看感觉是多余的

接下来用的话

Event::trigger('UserLogin');
与
Event::trigger('ul');

都可以触发app\listener\UserLogin事件,我是我目前的理解,如果你有更深的理解可以帮我补充补充

最近热帖 HOT TOPIC
【全套视频】thinkphp5视频教程 87172
父元素flex之后,子元素高度自适应问题 10970
一张纸的厚度是0.01毫米,则该纸对折30次后是多厚(据说超过珠穆朗玛峰的高度)php实现 10050
thinkphp5隐藏默认模块的一些问题 9522
api接口文档插件easydoc的基本用法,快速搞定接口文档 9477
PHP如何判断字符串是否为json格式 9215
omnicore rpc api中文手册【usdt】 9201
教你如果处理高并发数据不同步的问题php篇 9060
关于thinkphp5.0.x getshell漏洞的说明 8875
使用宝塔linux面板创建FTP无法连接的解决办法(阿里云或腾讯云) 8758
月度热议HOT COMMENTS
【全套视频】thinkphp5视频教程 71
tpframe 后续版本你希望有的功能是什么(分享贴) 12
权限那里怎么一登录别的账号就报错啊 9
关于tpframe的一点话题 6
cms插件在分类排序的时候JSON错误 6
基于tpframe v3.x 的微信公众号插件已批量上线 5
tpframe插件tcms插件v2.2已发布上线,欢迎下载使用 5
tpframe6.0马上就要跟大家见面了,一次全新的升级 5
透析thinkphp5升级版开发框架tpframe 3
新增的管理员没有权限操作CMS模块。 3
爆料早知道: