应优先读源码而非pdf手册:cache::set()参数顺序与类型见cache.php注释;db::table()返回query实例,支持链式调用;model()助手函数通过model::__callstatic()实现自动实例化,路径需含斜杠。

想快速查到ThinkPHP 5.1中Cache::set()的参数顺序、Db::table()是否支持链式调用、或者model()助手函数和new Model()的区别,不能靠“搜手册PDF”碰运气——因为官方文档已停止维护,PDF手册里没有PHP 7.4+类型声明适配说明,也没有5.1.27 LTS版本新增的缓存store切换逻辑。
优先读源码,而不是PDF手册
打开项目中vendors/topthink/thinkphp/目录,直接进入library/think/子目录:
→ 找到Cache.php,看set()方法的PHPDoc注释和参数类型提示;
→ 打开Db.php,搜索table(),确认它返回的是Query实例,因此必然支持链式操作;
→ 查Model.php的__callStatic(),就能明白为什么model('User')能自动实例化而model('admin/User')必须带斜杠。
这一步不可跳过。【所有5.1.20之后的缓存驱动行为变更(如Redis连接不读cache.php)都只写在Cache.php的connect()方法注释里,PDF手册完全没提】
速查表要配合命名空间使用
方法一:用博客园jude_liu整理的速查表时,注意它默认省略了use think\Cache;等语句——你实际写代码时必须补全,否则Cache::set()会报Fatal error。
方法二:在IDE中按住Ctrl(Windows)或Cmd(macOS)点击任意Cache::init()调用,直接跳转到框架源码对应行。这是最准的“API文档”,比任何速查表都及时。
方法三:在命令行运行php think optimize:schema生成类映射后,用IDE的自动补全功能查看方法签名。该命令会扫描think/library/think/下全部类,生成可索引的符号表。
PDF手册仅用于结构速览
第一步:打开《ThinkPHP5.1完全开发手册-08191054.pdf》,翻到“数据库操作”章节,快速确认Db::name()和Db::table()的语义差异——前者走配置前缀,后者直连物理表名。
第二步:跳转到“模型”章节,重点看“获取器”和“修改器”的定义格式,对照自己写的getCreateTimeAttr()是否符合命名规范。
第三步:合上PDF,回到app/model/User.php,把刚查到的规则立刻套用到实际代码中——PDF不解决运行时问题,只帮你少写错两处命名。
第四步:删掉PDF文件。它不再更新,且所有示例未适配PHP 7.4严格类型检查,function getAgeAttr($value, $data)这种写法在7.4+环境下会触发TypeError,但手册里没标出。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











