Laravel 9.x 是 Laravel 框架的重要版本更新,主要聚焦于现代化开发体验和性能优化。以下是其核心特性:
1. PHP 8.0 最低要求
- 强制要求 PHP 8.0 或更高版本,充分利用新语法特性(如联合类型、属性注解等)。
2. Symfony 6.x 组件升级
- 底层依赖升级至 Symfony 6.x,提升稳定性与安全性。
3. Eloquent 访问器/修改器优化
-
支持类型声明,简化模型数据处理:
php// 类型化访问器 public function getName(): Attribute { return Attribute::make( get: fn ($value) => strtoupper($value), set: fn ($value) => $value, ); }
4. 路由模型绑定增强
-
支持自定义键名绑定:
phpRoute::get('/users/{user:uuid}', fn (User $user) => ...);
5. Scout 数据库引擎
-
新增
database驱动,支持纯数据库全文搜索(无需第三方服务):php// config/scout.php 'driver' => 'database',
6. 匿名队列迁移
-
默认生成匿名队列迁移文件,避免命名冲突:
bashphp artisan queue:batches-table
7. 异常处理改进
-
更精细的 HTTP 异常渲染控制:
php// 在 Exception 中重写 render 方法 public function render($request) { return response()->view('errors.custom', [], 500); }
8. Flysystem 3.x 集成
- 文件存储系统升级至 Flysystem 3.x,支持更灵活的云存储适配。
9. 测试辅助工具增强
-
新增
freezeTime()和travelTo()方法简化时间模拟:php$this->freezeTime()->post('/create', [...]); // 冻结当前时间
10. 破坏性变更
- 移除 PHP 7.x 兼容性
- 部分弃用方法彻底删除(如
array_*辅助函数) - 默认启用
strict模式配置
升级建议
- 使用
composer update更新依赖 - 运行
php artisan view:clear清除缓存 - 检查 升级指南 处理破坏性变更
\\text{版本兼容性公式: } \\text{Laravel} \\geq 9.x \\implies \\text{PHP} \\geq 8.0