ThinkPHP事件监听:从懵圈到上手的踩坑实录
刚接触ThinkPHP事件机制那会儿,简直被官方文档绕晕了。什么Event::listen、Hook::add,分分钟让人想摔键盘。直到上周改版用户注册流程,硬着头皮折腾完才明白,原来事件监听可以这么玩。
最实用的场景就是用户注册后的附加操作。以前傻乎乎地在控制器里写流水账代码,现在直接挂个事件:Event::listen('UserRegister', function($user) { //发欢迎邮件 //送优惠券 //写操作日志 }),控制器里一行Event::trigger就搞定。调试时在事件里dd($user),比在控制器里var_dump清爽多了。
遇到个巨坑:事件名千万别用驼峰!有次手贱写了UserRegisterSuccess,监听死活不触发,后来发现文档小字写着"推荐下划线命名"。改成user_register_success瞬间活过来了,这教训值两小时debug时间。
现在项目里到处是这种骚操作:订单支付成功触发数据统计、文章发布后自动推送到ES。代码比原来清爽不说,改需求时再也不用在控制器里玩大家来找茬了。真心建议还在if-else里摸鱼的老哥试试事件驱动,真香!
最新打赏

