tp6升级必须新建项目再迁移代码,因它是彻底重写的框架而非tp5补丁迭代;需php≥7.1.0并启用mbstring、json、openssl、fileinfo扩展;配置结构扁平化、路由重构、db返回collection需转数组、模板与多应用需手动安装扩展。

不能原地 composer update 升级,必须新建 TP6 项目再迁移代码——TP6 是彻底重写的框架,不是 TP5 的补丁式迭代。
PHP 环境和扩展不满足直接报错
TP6 强制要求 PHP ≥ 7.1.0,且必须启用 mbstring、json、openssl、fileinfo 四个扩展。漏掉任意一个,轻则模板渲染失败、上传异常,重则首次访问就抛出 Class 'Mime\Type' not found。
- Windows 下检查
php.ini是否启用了extension=php_fileinfo.dll(常被默认注释) - Docker 用户别只改
php.ini,要确认基础镜像已安装fileinfo扩展(尤其 PHP 8+) - 用命令快速核对:
php -m | grep -E "mbstring|json|openssl|fileinfo"
配置文件结构和加载逻辑全变了
TP5 的 config.php 单文件模式在 TP6 中完全废弃。所有配置按模块拆进 config/ 目录,且 .env 文件拥有最高优先级——老项目直接复制旧 config.php 过去会静默失效。
-
config/app.php里不再有'default_module',多应用需设'app_multi' => true -
'empty_controller'键名保留,但值必须是类名字符串,如'empty_controller' => 'Error'(不能写'error') - 数据库密码含特殊字符时,
.env中必须用双引号包裹:DB_PASSWORD="p@ss#word!" - 自定义配置(如
config/api.php)不会自动加载,需显式调用Config::load('api.php', 'api')
路由注册方式和参数获取逻辑重构
TP5 的 route.php 全局规则写法在 TP6 中不可用,所有路由必须定义在 app/route.php,且只允许返回 think\Route 实例或调用其方法。
- 动态绑定如
Route::rule('api/:version/<module>/', 'api/:version.:module/:action')</module>必须拆成分组:Route::group('api/:version', function () { Route::get('<module>/', 'api/:version.:module/:action'); });</module> -
[:id\d+]这类正则简写已被废弃,必须显式传pattern参数:':id' => '\d+' -
request()->module()、request()->controller()全部失效,改用app('http')->getName()获取当前应用名,参数统一走request()->param('id') -
Url::build('index/user/read')报错,必须改用数组或标识符:url('index/user/read', ['id' => 1])
控制器、模型、中间件签名强制类型声明
TP6 开启严格模式后,控制器方法若没写参数和返回类型,可能不报错但行为错乱——比如 return json() 实际返回 string 却被当成 Response 对象,导致 HTTP 头重复发送。
- 控制器方法必须声明类型:
public function index(Request $request): \think\response\Json - 模型查询结果不能直接
return $user,要显式包装:return json(['data' => $user])或用success() - 中间件
handle()方法签名也变了:public function handle(Request $request, \Closure $next): Response,漏掉Response返回类型会导致协程下响应体丢失 -
Db::name('user')->select()返回的是Collection对象,不是数组,需显式调用->toArray()
最易被忽略的是:TP6 默认不带 view 模板引擎和多应用支持,这两块必须手动装扩展;还有 Web 服务器入口路径配置错误会导致 404,根本没走到框架路由层——这不是代码问题,是部署配置问题。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











