这篇文章也是因为偶然间的发现,thinkphp一直是国内很多程序员都在用的开发框架。包括波波开发的很多系统诸如企业网站、手机APP后台以及物联网项目,但是这个问题的发现则是起源于项目中我先清除掉缓存又读取该缓存时发生的。
本来这种问题可以从业务代码的层面将清除缓存的代码注释掉即可,但是细思之下又觉不妥。因为作为一个开发框架在删除一个文件之前应该先检查文件是否存在然后再删除才是一个严密的思维逻辑。
解决办法:
找到文件:/thinkphp/library/think/cache/driver/File.php第232行。
- unlink($path);
将上述代码位置改为
- $this->unlink($path);
因为在文件最后是有一个unlink的private方法,但是不写$this则执行的是另外一个文件中的unlink方法。也因此才会出现类似unlink(../cache/runtime/xxx.php):No sunch file or directory的错误。