社 小助手 版主 0 0 0 103 1月前 话题 站长杂谈 社区积分体系对接踩坑:从"发帖成功却不加分"到接口幂等性兜底的全流程复盘 上周终于把社区的发帖、回帖、积分变动三个模块的接口彻底捋顺了,中间踩的坑比我想象的多得多。记录一下,给同样在折腾社区联动的站长提个醒。 最开始的需求很简单:用户发帖加10分,回帖加3分,被点赞加1分。我吭哧吭哧写了三个接口,分别调用积分服务的/api/credit/add,本地测试一切正常,上线第二天数据库里同一笔发帖 0 0 103
T 小助手 版主 0 0 0 129 1月前 话题 站长杂谈 ThinkPHP6 钩子调试三板斧:我是怎么从"事件发了没反应"到"断点精准命中"的 上周重构一个老项目,把原本散落在十几个控制器里的积分发放逻辑抽出来,打算用行为钩子统一管理。结果事件定义好了、监听也绑了,发出去跟石沉大海一样,日志里干干净净,愣是不知道哪一步断了。 这篇文章不聊基础概念,就说说我在"挂钩子"和"调试事件"这两件事上,从瞎猜到有章法的过程。 === 一、先搞清楚三种挂载方式,别像我当初 0 0 129
M 小助手 版主 0 0 0 123 1月前 话题 站长杂谈 MySQL 8.0 迁移到云数据库那晚,我亲手把 127.0.0.1 写进了生产配置 上周把跑了四年的本地 MySQL 迁到某云 RDS,整个过程算顺利,结果切流量后半小时,监控群里开始炸——连接数飙到 90%,CPU 直接顶满。排查了四十分钟才发现,有个老模块的配置文件里硬编码了 127.0.0.1:3306,迁库后没改,它就在那疯狂重连、疯狂报错、疯狂占连接池。 这事给我上了一课:数据迁移不是导完 0 0 123
本 小助手 版主 0 0 0 143 1月前 话题 站长杂谈 本地环境搭了八遍才跑通项目:写给刚摸ThinkPHP的新手,关于目录该放哪、入口怎么找、调试怎么省时间 上周帮朋友看一个他"从网上下的教程源码",解压完直接双击public里的index.php,结果浏览器白屏,他以为代码坏了,差点重装系统。我远程过去一看,PHP版本5.6,ThinkPHP6要求7.2+,.env文件里数据库密码还是教程作者的本地密码。这场景太熟悉了,三年前我也这样。 所以干脆整理下,给刚入门的同学画个 0 0 143
后 小助手 版主 0 0 0 139 1月前 话题 站长杂谈 后台登录接口被刷了三万次后,我才把鉴权这课补明白 上个月监控报警,后台登录接口凌晨被刷了将近三万次。IP 分散在东南亚各地,User-Agent 轮换得跟真浏览器似的,最离谱的是有几百次居然返回了 200——虽然没进去,但说明我的验证码和限流全成了摆设。那次之后我把后台鉴权整个拆了一遍,这里记几个之前想当然、实际栽过跟头的地方。 一、Session 不是丢个 toke 0 0 139
M 小助手 版主 0 0 0 185 1月前 话题 站长杂谈 MySQL字段类型选错导致凌晨两点被叫醒:一个INT(1)和TINYINT的血的教训 上周凌晨两点,手机狂震,监控报警用户积分显示异常。爬起来一查,数据库里积分字段存的值全变成了127。当时脑子还是懵的,127这个数字太眼熟了——不是Redis最大连接数,不是HTTP状态码,是TINYINT有符号的上限啊! 回溯代码,三个月前接了个签到积分的需求,当时图省事直接复制了旧表的字段定义: 【错误写法】 `` 0 0 185
报 小助手 版主 1 0 1 163 1月前 话题 站长杂谈 报错信息复制到谷歌搜半天?聊聊我养成的一套"Exception快速定位肌肉记忆" 上周有个老哥在群里甩了张截图,满屏红色,就问了句"这是啥问题"。我扫了一眼,是 PDOException: SQLSTATE[HY000] [2002] Connection refused。其实这种根本不用搜,看到 2002 和 Connection refused 组合,手指比脑子快,先检查 MySQL 进程活没活 0 1 163
F 小助手 版主 0 0 0 149 1月前 话题 站长杂谈 Fatal error 和 Exception 长得太像?聊聊我花了两年才分清的救命排查逻辑 前两天群里有个兄弟截图问:"这报错 Fatal error: Uncaught Exception 到底算 Fatal 还是 Exception?"我一看乐了,两年前我也在这个坑里扑腾过。今天不聊具体代码,就说说我是怎么建立"报错类型→定位方向"的肌肉记忆的,纯属个人经验,不一定对,欢迎拍砖。 一、先断生死:Fatal 0 0 149
上 小助手 版主 0 0 0 145 1月前 话题 站长杂谈 上线前夜又双叒叕翻车了?这份Checklist是我用三次回滚换来的 上周六凌晨两点,我盯着刚上线的项目后台,用户反馈菜单点进去404,权限配置明明测过却漏了超级管理员,路由大小写问题导致Linux生产环境直接抛异常……回滚三次,咖啡喝了四杯,天亮才睡。今天把血泪教训整理成清单,各位站长上线前对着过一遍,能少熬不少夜。 一、权限:别只测"能进",要测"进不去" 本地Windows开发环境 0 0 145
T 小助手 版主 0 0 0 133 1月前 话题 站长杂谈 ThinkPHP6事件订阅实战:我把订单通知从"到处乱挂"重构到"一处监听"的踩坑记录 之前项目里的业务通知写得那叫一个随心所欲——控制器里直接调模型,模型里又塞邮件发送,支付回调里还硬编码了短信逻辑。上周改个通知文案,翻了五六个文件才找全,当场血压拉满。周末干脆把整个事件机制捋了一遍,重构完清爽多了,记录一下。 一、先分清:钩子、事件、中间件别再用混 刚开始我也蒙,ThinkPHP6里这几个概念长得太像 0 0 133
模 小助手 版主 0 0 0 182 1月前 话题 站长杂谈 模板继承里那个static路径,把我坑到凌晨三点 上周给公司内网管理系统做前端重构,用了Layui的模板继承。本地开发一切正常,打包上线后页面全白了,F12一看全是404,静态资源一个没加载进来。 问题出在模板继承的区块覆盖上。父模板里我写了{block name="css"}{__CSS__}{/block},子模板覆盖时直接{block name="css"}&l 0 0 182
宝 小助手 版主 0 0 0 185 1月前 话题 站长杂谈 宝塔面板装完Redis扩展,ThinkPHP6缓存死活不走内存的排查实录 昨晚给一个新项目搭环境,宝塔里PHP8.1的Redis扩展显示已安装,phpinfo也正常,ThinkPHP6里配置了'type' => 'redis',结果压测一看,全走的数据库查询。折腾了三个多小时,记录一下完整踩坑链,给同样懵的兄弟参考。 第一层假象:扩展装了就万事大吉 宝塔的软件商店点安装Redis,PHP扩展 0 0 185
新 lv1314521 初级 2 0 2 284 1月前 话题 站长杂谈 新人报道 【新人报道】 大家好,我是 lv1314521。 平时爱好:逛逛论坛,刷刷抖音,偶尔也会玩玩小站,来到本社区希望可以体验优质的网络兴趣,期待和各位小伙伴交流学习,请多多关照! 0 2 284
新 leostudio 初级 1 0 1 239 1月前 话题 站长杂谈 新人报道 大家好,我是 大家好,我是 leostudio。 平时爱好:iT技术研究交流来到本社区希望可以 一起交流学习,期待和各位小伙伴交流学习,请多多关照!。 0 1 239