应根据PHP版本和项目需求选择ThinkPHP 6或8:TP6支持PHP 7.2+,最后稳定版为6.3.10;TP8要求PHP >=8.1,当前最新为8.0.5,二者架构不兼容,无平滑升级路径。

Composer 安装 ThinkPHP 最新版(目前是 thinkphp 8.x)不能靠“最新版”这种模糊表述自动搞定,因为官方已停止维护 thinkphp 7.x 及更早的独立包名,TP8 实际对应的是 topthink/think v8.x,而 TP6 仍用 topthink/think v6.x —— 包名相同,版本号决定框架代际。
确认你要装的是 TP6 还是 TP8
ThinkPHP 官方从 v7 开始重构为全组件化架构,v7 未正式发布即被 v8 取代;当前稳定主线是 topthink/think v8.x(2024 年主流),但很多老项目仍基于 v6.x。二者不兼容:
-
composer create-project topthink/think默认拉取的是 v8.x(除非你锁定了6.*) - TP6 的最后稳定版是
6.3.10,TP8 当前最新是8.0.5(截至 2024 年中) - v8 要求 PHP >= 8.1,v6 支持 PHP 7.2+,别在 PHP 7.4 环境硬装 TP8,会报
ParseError: syntax error, unexpected token "string"
用 composer create-project 安装 TP8(推荐新项目)
这是最干净的初始化方式,避免手动复制骨架或依赖混乱:
composer create-project topthink/think tp8
如需指定版本(例如固定到 8.0.5):
立即学习“PHP免费学习笔记(深入)”;
composer create-project topthink/think tp8 8.0.5
安装后进入目录,运行内置服务验证:
cd tp8 php think run
访问 http://127.0.0.1:8000 应看到 TP8 欢迎页。注意:think run 是 TP8 新增命令,TP6 用的是 php think serve。
安装 TP6(兼容旧环境或迁移项目)
必须显式指定版本范围,否则 create-project 会默认走 v8:
composer create-project topthink/think tp6 "6.*"
或锁定具体小版本:
composer create-project topthink/think tp6 "6.3.10"
TP6 启动命令不同:
cd tp6 php think serve
常见坑:
- 执行
php think serve报错Class 'think\Console' not found:说明vendor/autoload.php未正确加载,检查是否在项目根目录运行命令 - TP6 的
config/app.php中'debug' => true必须开启才能看到详细错误,生产环境切勿留开 - TP6 默认不带
public/index.php的 rewrite 规则,Nginx/Apache 需额外配置,而 TP8 已内置更健壮的 public 入口结构
已有项目升级 TP6 → TP8?别直接 upgrade
TP6 到 TP8 是架构级断裂,没有平滑升级路径。官方不提供 composer update 迁移方案,强行升级会导致:
-
think\App、think\Request等核心类行为彻底改变 - 中间件注册方式从数组定义改为 Attribute + 注解驱动
- 数据库查询构造器语法微调(如
whereLike→where('name', 'like', '%val%')) -
配置文件从
.env+config/双层变为纯config/+ 强类型配置类
真实做法是:新建 TP8 项目,逐步迁移路由、控制器、模型逻辑,用 API 接口做灰度验证。把 composer.json 里 "topthink/think": "^6.0" 改成 "^8.0" 不会成功,Composer 会因依赖冲突中止。
TP8 的入口和生命周期设计更贴近现代 PHP 实践,但代价是放弃向后兼容;TP6 依然稳定可用,只是不再接收新特性。选哪个,取决于你的 PHP 版本、团队熟悉度和长期维护成本——不是越新越好,而是匹配实际约束。











