新项目直接执行composer create-project topthink/think tp8 --prefer-dist即可自动安装最新稳定版tp8(当前8.0.12),无需指定小版本号;老项目必须分两步升级:先升至tp6.0.10+,再升至tp8.0,且php需≥8.0。

在Ubuntu或任何Linux发行环境下搭建PHP Web项目时,你面对composer create-project topthink/think=5.1.*、=6.0.10、=8.0.12等一堆版本号,根本不知道该敲哪一行命令——选错版本轻则报错退出,重则连php think run都启动不起来,更别说后续开发了。
新项目直接上ThinkPHP 8.0
这一步操作起来很简单,直接执行命令就行:
composer create-project topthink/think tp8 --prefer-dist
它会自动拉取最新稳定版的ThinkPHP 8.x(当前为8.0.12),并完成基础目录结构初始化。该命令隐含指定^8.0范围,无需手动写死小版本号。
如果你强制指定=8.0.0,会因依赖包版本冲突导致安装失败——【8.0.0是初始发布版,已废弃,必须用8.0.10及以上】。
安装完成后,进入项目目录执行php think run,访问http://localhost:8000即可看到欢迎页。整个过程不需要改任何配置文件。
老项目升级路径:5.x → 6.0 → 8.0 分两步走
ThinkPHP 5.x 到 8.0 不支持跨大版本直升,强行修改composer.json中的topthink/framework版本号会导致大量类找不到、路由失效、模型方法报错。
第一步:先升级到6.0.10+
① 备份整个application/目录和数据库;
② 修改composer.json中"topthink/framework": "^6.0",删除vendor/目录;
③ 执行composer install,观察是否出现Class not found错误——若出现,说明控制器命名仍带Controller后缀,需按TP6规范改为Index.php而非IndexController.php;
④ 运行php think migrate:run检查数据库迁移是否兼容,不兼容则需手动补全app/migrate中的新字段定义。
第二步:确认TP6运行无误后,再升级到8.0
此时需将PHP版本升至8.0+,否则composer update会直接中断;
将"topthink/framework": "^8.0"写入composer.json,执行composer update topthink/framework;
重点检查config/app.php中'default_return_type' => 'html'是否仍存在——TP8已移除此配置项,残留会导致响应头异常。
哪些场景还值得用ThinkPHP 5.1
方法一:维护已上线多年、无新增功能需求的内部管理系统
这类系统数据库结构固定、前端无Vue/UniApp集成需求、服务器PHP版本卡在7.2无法升级——TP5.1仍能稳定跑满十年以上,但【2025年12月起官方已终止所有安全更新】,公网暴露务必加WAF防护。
方法二:教学演示或学生作业快速原型
TP5.1控制器写法直观(return $this->fetch();)、路由规则简单(Route::get('index','index/index');),比TP8的Attribute路由更易讲清楚MVC流程。
方法三:极简单页应用(SPA后端仅提供API)
若项目只用db()->name('user')->select()查数据、无中间件/事件/队列需求,TP5.1的thinkphp/library/think/Db.php体积仅32KB,比TP8的think-orm轻量4倍。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











