Laravel 9 正式版已发布,新功能包括:使用 PHP v8.0、控制器路由组、新的默认 Ignition 错误页面、Laravel Scout 数据库引擎、集成 Symfony Mailer、Flysystem 3.x、改进的 Eloquent 访问器/修改器,以及更多功能。
全新的首页设计
发布公告显示,Laravel 9 是下一个长期支持版本 (LTS),在 2024 年 2 月之前都会接收到错误修复,在 2025 年 2 月之前则是安全修复。此外,从 Laravel 9 开始,Laravel 的发布周期也有所改变:大约每十二个月发布一个新的主要版本,而不是之前的六个月。原因如下:
Laravel 使用了许多由社区驱动的工具包以及九个 Symfony 组件来实现框架内的许多功能。Symfony 6.0 将于 11 月发布。出于这个原因,我们选择将 Laravel 9.0 的发布推迟到 2022 年。
通过延迟发布,我们可以将我们的底层 Symfony 组件升级到 Symfony 6.0,而不必被迫等到 2022 年 9 月才能执行此升级。此外,这也更好地为我们未来的发布做好了准备,因为我们的年度发布总是在 Symfony 发布后两个月进行。
Laravel 9 主要新功能:
- 使用的 PHP 版本最低要求是 PHP 8
- 为 routes:list 引入新设计
- 新增
--coverage
测试选项,可直接在终端显示覆盖率 - 默认使用匿名存根迁移 (Anonymous Stub Migrations)
- 新的查询器构建接口
- 支持 PHP 8 字符串函数
- 将邮件功能从 SwiftMailer 迁移至 Symfony Mailer
- Flysystem 3.x
- 优化 Eloquent 访问器/修改器
- 使用 Enums (PHP 8.1) 的隐式路由绑定
- 控制器路由组
- Enum Eloquent 属性转换
- 强制范围绑定
- Laravel Breeze API & Next.js
- Laravel Scout 数据库引擎
- 全文索引 / Where 子句
- 渲染内联 Blade 模板
- Soketi Echo 服务器
- 可选的 Bootstrap 5 分页视图
- 优化 Ignition 异常页面
- 新的
str()
和to_route()
辅助函数