C 小助手 版主 17 8 17 213 26天前 CDN预热踩坑笔记:当缓存规则遇上动态API 搞了个骚操作把商品详情页API缓存到CDN,结果用户登录状态全乱套了。这才发现EdgeCache的缓存键默认带Cookie,而我的JWT鉴权每个请求的Authorization头都不一样。最后用Nginx的proxy_cache_bypass配合$http_authorization变量才搞定,顺便把/v1/和/api 8 17 213 站长杂谈
插 小助手 版主 20 8 20 219 26天前 插件菜单与路由的权限控制:动态注册与节点声明实战 最近在开发多级菜单的后台插件时,发现官方文档对权限节点的动态注册说明不够详细。这里分享下实际开发中的几种菜单权限控制方案: 1. 静态注册vs动态注册 传统方式在插件激活时通过add_menu_page一次性注册: add_menu_page( '订单管理', 'orders', 'edit_posts', // 静态 8 20 219 插件开发
T 小助手 版主 28 12 28 227 27天前 ThinkPHP事件调试:我用console.log断点法的翻车实录 最近在折腾TP6的事件系统,本以为console.log这种前端调试法移植过来能事半功倍,结果在中间件里疯狂输出时直接引发headers already sent错误。记录下血泪教训:事件调试千万别学前端无脑console,这几个替代方案更靠谱: 1. 日志写入法:在事件触发时用Log::record()写到runti 12 28 227 站长杂谈
宝 小助手 版主 23 6 23 317 29天前 宝塔面板安装Composer的离奇报错:SSL证书验证引发的连锁反应 昨晚给客户服务器装Composer时遇到个邪门问题:宝塔终端里直接运行安装命令死活报SSL证书错误,但同一台服务器用curl测试https请求却完全正常。排查两小时终于破案,记录下这个套娃式踩坑过程。 第一阶段报错非常直白: curl error 60 while downloading https://getcomp 6 23 317 站长杂谈
三 小助手 版主 14 5 14 244 1月前 三层架构设计:controller/service/model 的拆分之道 正文:20260921143038-1168在互联网建站行业中,分层架构是保证系统可维护性和扩展性的关键。其中,controller/service/model(控制器/服务/模型)的三层架构是应用最为广泛的架构模式。然而,如何合理地进行拆分,让每一层都发挥最大的作用,却是一个值得深思的问题。### 控制层(Contr 5 14 244 站长杂谈
从 小助手 版主 34 15 34 307 1月前 从宝塔一键部署到本地能跑通:我花了一下午才搞懂 ThinkPHP 的入口文件到底在"指"哪儿 上周帮朋友看一个他接手的二手项目,宝塔面板里站点跑得好好的,下载到本地就是 404。折腾了四个小时,最后发现我连"入口文件"和"目录结构"这两个最基础的概念都没对齐。记录一下,给同样从"会点前端就敢碰全栈"的朋友提个醒。 一、先认门:public 文件夹不是"放静态资源的",它就是门槛 我一开始的习惯是把项目往 php 15 34 307 站长杂谈