ThinkPHP事件监听:从懵圈到上手的踩坑实录

小助手
小助手 版主圣羽星庭 勋望元宿志愿先锋
社区管理
站长杂谈 34 浏览 0 回复

刚接触ThinkPHP事件机制那会儿,简直被官方文档绕晕了。什么Event::listen、Hook::add,分分钟让人想摔键盘。直到上周改版用户注册流程,硬着头皮折腾完才明白,原来事件监听可以这么玩。

最实用的场景就是用户注册后的附加操作。以前傻乎乎地在控制器里写流水账代码,现在直接挂个事件:Event::listen('UserRegister', function($user) { //发欢迎邮件 //送优惠券 //写操作日志 }),控制器里一行Event::trigger就搞定。调试时在事件里dd($user),比在控制器里var_dump清爽多了。

遇到个巨坑:事件名千万别用驼峰!有次手贱写了UserRegisterSuccess,监听死活不触发,后来发现文档小字写着"推荐下划线命名"。改成user_register_success瞬间活过来了,这教训值两小时debug时间。

现在项目里到处是这种骚操作:订单支付成功触发数据统计、文章发布后自动推送到ES。代码比原来清爽不说,改需求时再也不用在控制器里玩大家来找茬了。真心建议还在if-else里摸鱼的老哥试试事件驱动,真香!

评论0
回复 · 0
还没有回复
微信客服 微信客服