多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
  在使用ThinkPHP的开发的过程中我们习惯性的会把`APP_DEBUG`的值设置为`true`,但是在上线的时候我们会将其置为false,用以抑制一些敏感的报错抛出。   在这个上线的过程中,我就遇到这么一个"坑"。   线上环境 **define('APP_DEBUG',false);**,由于是在上线测试阶段,我修改了数据库的一个表,增加了一个字段。然后发现无论如何修改本地的函数文件的函数 `get_area_info()` 都没用。甚至乎我删除了函数文件`Home/Common/function.php`,我开始意识到问题变得糟糕起来。   由于在函数 `get_area_info()` 中我使用到了ThinkPHP提供的缓存函数`S()`,刚开始我一直认为我从数据库中查询的数据是被缓存了,但是我设置了10秒的有效期 ` "DATA_CACHE_TIME" => 10, // 缓存有效期`,**我想数据库中取出的数据,应该十秒钟后过期了才对**。   最后,我删除了缓存文件夹`Runtime`下的所有文件才暴露出来,翻阅ThinkPHP源码如下:   `Think.class.php`文件的`start`静态方法中找到如下代码: ![](https://box.kancloud.cn/2720bc11ffe43cfd99932bc60d81c788_561x117.png) 瞬间我就崩溃了,我想在ThinkPHP中这么做是为了减少加载函数文件带来的开销。由于之前没注意框架的机制导致这种尴尬的开发经历也是在之后的工作中需要总结和提升的地方。