Laravel 9.X 版本引入了多项重要更新,以下是核心特性概述:
1. PHP 8.0 最低要求
- 需运行于 PHP 8.0 或更高版本,充分利用新语法特性(如命名参数、属性注解)。
2. 路由控制器改进
-
闭包路由返回类型声明
支持直接返回响应对象,简化 API 开发:
phpRoute::get('/user', function (): JsonResponse { return response()->json(User::all()); }); -
路由键名枚举
通过
Route::enum()约束路由参数为枚举类型:phpRoute::get('/post/{status}', function (PostStatus $status) { // $status 为枚举实例 })->enum(PostStatus::class);
3. Eloquent 访问器优化
-
缓存模型访问器结果
新增shouldCache方法避免重复计算:phpclass User extends Model { protected function name(): Attribute { return Attribute::make( get: fn ($value) => strtoupper($value), )->shouldCache(); } }
4. 匿名迁移类名
-
迁移文件默认使用匿名类,避免类名冲突:
phpreturn new class extends Migration { public function up() { /* ... */ } };
5. Flysystem v2 集成
- 升级至 Flysystem v3 (Laravel 9.1+),支持:
- 统一文件操作接口(如
Storage::readStream()) - 改进云存储适配器(AWS S3、FTP 等)
- 统一文件操作接口(如
6. 测试工具增强
- HTTP 测试异常处理
$this->withoutExceptionHandling()可捕获异常详情。 - 并行测试支持
通过--parallel参数加速测试套件执行。
7. 新助手函数
-
str():链式字符串操作(替代Str::of())phpstr('Laravel 9')->upper()->replace('9', 'X'); -
to_route():生成路由重定向响应phpreturn to_route('dashboard');
8. Symfony 组件升级
- 依赖的 Symfony 组件升级至 v6.0,提升稳定性和性能。
9. Ignition 错误页优化
- 调试工具 Ignition 提供更清晰的堆栈追踪和解决方案建议。
10. LTS(长期支持)
- Laravel 9 为 LTS 版本,提供 3 年的安全更新支持(截至 2025 年)。
总结
Laravel 9 聚焦于 性能优化 、开发体验提升 和 现代化 PHP 特性适配 ,建议升级前检查扩展包兼容性。完整特性参考官方发布说明。