TP5.1要求缓存配置必须独立存放于config/cache.php,不兼容TP5.0的config.php中混写方式,且支持模块级config/module_name/cache.php覆盖,而TP5.0仅支持全局统一配置。

ThinkPHP 5.0 和 5.1 在缓存配置目录的组织方式上存在明确差异,核心在于配置文件的存放位置是否允许模块级覆盖、以及框架读取配置的优先级逻辑。
5.0:缓存配置集中于应用根配置
在 TP5.0 中,缓存配置统一写在 application/config.php 或 thinkphp/convention.php 中,没有独立的 cache.php 文件。框架通过全局配置项(如 'cache' => [...]')定义驱动和参数,且不支持按模块单独配置缓存类型或路径。
- 配置入口单一,修改需直接编辑主配置文件
- 模块无法拥有专属缓存策略(比如前台用 File,后台用 Redis)
- 若未显式配置,部分场景会回退到默认 File 驱动,但行为不稳定
5.1:缓存配置独立为专用文件,支持分层管理
TP5.1 将缓存配置彻底解耦,要求必须新建 config/cache.php 文件,并返回标准数组配置。该文件位于项目根目录的 config/ 下,与 database.php、app.php 并列,是唯一被框架识别的有效缓存配置入口。
- 不再从
config.php或convention.php读取 cache 配置项 - 支持模块级缓存配置:可在
config/module_name/cache.php中为特定模块定制驱动 - 若模块目录下存在
config/cache.php,且对应模块加载时,会自动合并或覆盖全局配置
关键区别总结
最易出错的一点是:TP5.1 不再兼容 5.0 的配置写法。把缓存配置写进 config.php 或调用 Cache::connect() 硬编码,在 5.1 中不会生效——模型查询缓存、视图缓存、系统内部缓存均依赖 config/cache.php 的驱动实例。
立即学习“PHP免费学习笔记(深入)”;
- 5.0 允许“混写”,5.1 要求“专文专用”
- 5.0 无模块缓存概念,5.1 支持
config/[module]/cache.php - 5.1 的
cache.php必须包含'type'键,否则初始化失败且静默降级为空实现



















