Laravel 10 新特性前瞻
Laravel v10 是 Laravel 的下一个主要版本,计划于 2023 年 2 月 7 日发布。在这篇文章中,我们想概述我们所知道的所有新功能和更改。
我们鼓励您在未来几周内查看这篇文章,因为我们将继续关注 Larave 10 中的新功能,并在 2 月发布之前更新这篇文章。
Laravel 10 发布日期
之前 Laravel 9,主要框架版本每年发布两次,大约每六个月发布一次。从 Laravel 9 开始,核心团队开始了年度计划,在 2022 年 2 月发布了 Laravel 9(而不是最初计划的 2021 年 9 月):
Laravel 使用了各种社区驱动的包以及 9 个 symfony 组件来实现框架中的许多功能。Symfony 6.0 预计将于 11 月发布。因此,我们选择将 Laravel 9.0 版本推迟到 2022 年。
通过推迟发布,我们可以将底层 symfony 组件升级到 symfony 6.0,而不必被迫等到 2022 年 9 月才执行此升级。此外,这更有利于我们为未来的发布做好准备,因为我们的年度发布总是在 symfony 发布后两个月进行。
今后的进度是每年发布一个主要版本:
- Laravel 9: 2022 年 2 月 8 日
- Laravel 10: 2023 年 2 月 7 日
- Laravel 11: 2024 年 2 月 6 日
Laravel 9 在 2023 年 8 月 8 日 之前都会接收到错误修复,在 2024 年 2 月 6 日之前则是安全修复。。
您可以预期 Laravel 10 接收到错误修复直到 2024 年 8 月 6 日前,以及提供安全修复直到 2025 年 2 月 4 日之前。
Laravel 10 放弃对 PHP 8.0的支持
Laravel 框架将放弃对 Laravel 10 中 PHP 小于 8.0 版本的支持,使用的PHP版本最低要求是 8.1 。 比较「master」分支和「9.x」分支 ,能看到 PHP 8.1 在 Laravel 框架中应用到的新特性 8.1 features , 例如只读配置。
Laravel 10框架中的原生类型声明
在 Laravel 10 中, 应用程序框架代码将具备原生类型声明 。这意味着任何在用户空间由框架生成的代码将 使用类型提示和返回类型。本文讨论了该方法的注意事项,并且我们认为您将来在创建新项目时会喜欢添加的类型声明。
添加类型的方式为Laravel项目带来了最新的php类型提示功能,而不破坏框架级别的向后兼容性:
- 返回类型
- 方法参数
- 尽可能删除冗余注释
- 允许用户在闭包参数中使用区域类型
- 不包括类型化属性
可调用的验证规则是默认的
从Laravel 10开始,可调用的验证rules]现在是默认的。当您通过Arartian创建新的验证规则时,您可以预期:
# Laravel 9创建了一个规则类
# Illuminate\Contracts\Validation\Rule interface
artisan make:rule Uppercase
# Laravel 9标志创建可调用的隐式规则
artisan make:rule Uppercase --invokable
artisan make:rule Uppercase --invokable --implicit
# Laravel 10默认创建一个可调用的规则
artisan make:rule Uppercase
# Laravel 10隐式规则
artisan make:rule Uppercase --implicit
Laravel 9中已弃用的方法
Laravel 9中标记为已弃用的方法在Laravel 10中被删除。我们可以期待发行版升级指南概述所有不推荐的方法、潜在影响评估,以及如何升级到更接近发行版。
以下是在撰写本文时,将Laravel框架的“master”分支与“9.x”分支进行比较时发现的一些反对意见:
- 删除各种弃用 Pull Request #41136
- 删除中已弃用的日期属性 Pull Request #42587
- 删除
handleDepression
方法 Pull Request #42590 - 删除已弃用的
assertTimesSsent
方法 Pull Request #42592 - 删除已弃用的
ScheduleListCommand
的$defaultName
属性 419471e - 删除已弃用的
Route::home
方法 Pull Request #42614 - 删除已弃用的
dispatchNow
功能 Pull Request #42591
更多...
距离 Laravel 10 还有几个月时间,更多新功能和公告将会发布。我们会在这些消息发布后更新此帖。你也可以通过 官方发布 来查看可用的更新信息。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
更新好快
上一个LTS版本已经过期了,看起来10成为LTS版本的可能性也不大了
你更新吧,反正我觉得没大屁用,laravel只是一个大框架,主要的是相关的几个主要包也必须跟着更新,才有用啊
api-ecosystem-for-laravel/dingo-api
beyondcode/laravel-websockets
intervention/image
laravel/sanctum
php-open-source-saver/jwt-auth
估计要间隔1代才会考虑更新