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”分支进行比较时发现的一些反对意见:

更多...

距离 Laravel 10 还有几个月时间,更多新功能和公告将会发布。我们会在这些消息发布后更新此帖。你也可以通过 官方发布 来查看可用的更新信息。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-10

译文地址:https://learnku.com/laravel/t/74522

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

更新好快

3周前 评论
gema 3周前

快跟不上laravel的更新速度了,发布观望半年后再用到项目当中去

3周前 评论

上一个LTS版本已经过期了,看起来10成为LTS版本的可能性也不大了

3周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!