Slim 4应用保存代码修改后刷新浏览器无法立即更新生效
Slim 4修改代码后延迟1分钟生效问题解决方案
你遇到的这个问题和Twig配置无关,核心是环境层面的缓存规则导致,按以下顺序排查即可解决:
核心原因:PHP OPcache默认校验周期为60秒
MAMP PRO默认开启OPcache扩展,该扩展会将编译后的PHP脚本、Twig模板运行时生成的编译文件缓存到共享内存中,默认配置下每60秒才会检查一次源文件是否有更新,和你描述的“等待约1分钟才生效”的症状完全吻合。
注意:你在Twig初始化时设置的cache => false仅控制Twig是否将编译后的模板写入磁盘缓存,不会干预OPcache在内存层面的代码缓存逻辑,所以修改该配置不会解决这个延迟问题。
修复方式:
- 打开MAMP PRO,切换到当前使用的PHP版本对应的
php.ini配置文件 - 找到
[opcache]配置段,修改以下参数:
opcache.enable = 1 ; 开发环境下将文件更新校验周期设为0,每次请求都检查源文件是否修改 opcache.revalidate_freq = 0 ; 确保开启文件时间戳校验,设为0会完全不检查文件更新 opcache.validate_timestamps = 1
- 保存配置后重启MAMP的PHP服务,刷新页面即可立即看到代码、模板的修改效果。
次要排查点:MAMP站点缓存
部分版本的MAMP PRO默认开启站点级响应缓存,默认TTL也是60秒:
- 打开对应站点的设置面板,找到「Cache」选项卡
- 开发环境下直接关闭站点缓存,或把缓存有效期设为0即可。
补充验证
你当前的Slim初始化、Twig配置、路由定义代码本身没有语法问题,修复完上述配置后可以额外检查项目目录下是否存在遗留的Twig磁盘缓存目录,如果有直接删除即可,不会影响后续运行。
内容的提问来源于stack exchange,提问作者cesarcarlos
相关产品推荐
相关产品推荐

