[翻译]看看即将到来的 Laravel 10

原文地址:laravel-news.com/laravel-10 翻译于2023年1月3日

Laravel v10 是 Laravel 的下一个主要版本,计划于2023年的2月7日发布。这篇文章将概述所有我们所知道的新特性和变化。

我希望你在接下来的几周里回顾这篇文章,我们将持续审视加入到 Laravel 10 的内容,并2月份发布之前更新本文。

Laravel 10 发布日

Laravel 9 以前,主要框架版本按照一年两次或大概每六个月一次的频率发布。从 Laravel 9 开始,核心团队制定了年度计划,在2022年2月(而非原计划于2021年9月)发布了 Laravel 9:

Laravel 使用了很多优秀的社区驱动的扩展包来实现框架特性,比如 Symfony 的9个组件。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日 前持续解决 bug,并且将在 2024年2月6日 前解决安全问题
Laravel 10 将在 2024年8月6日 前持续解决 bug,并且将在 2025年2月4日 前解决安全问题

Laravel 10 将不再兼容 PHP 8.0

Laravel 框架将在 Laravel 10 中不再兼容 PHP <=v8.0 版本。最低需求版本将是 PHP ^8.1。查看 在master到9.x之间比较,我们可以期盼着 8.1 的特性 在框架中的使用,比如只读属性。

在 Laravel 10 结构代码中使用内置类型声明

在 Laravel 10,框架生成的结构代码将拥有内置类型声明。这意味着用户通过框架创建任何类都将具有类型提示和返回类型。我们的文章围绕着这些注意事项进行了讨论,并且我们认为你会喜欢上在新的项目里添加类型。

类型添加方式可以在 Laravel 项目中使用最新的 PHP 类型提醒特性,而不会在框架级别破坏向后兼容性。

  • 返回类型
  • 方法参数
  • 尽可能的删除多余的注解
  • 允许用户在闭包参数中使用内置类型
  • 不包括类型化的属性

创建可执行的验证规则设为为默认的

在 Laravel 10,可执行的验证规则 现在为默认的。当你通过 artisan 创建一个新的规则,你可以这样预期:

# 在 Laravel 9 创建一个实现了 Illuminate\Contracts\Validation\Rule 接口的
# 规则类
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 中弃用的特性

Lavavel 9 中的一些被标注为弃用的方法,将在 Laravel 10 中被移除。我们希望发布升级指引概览出所有弃用的方法,评估潜在的影响,并决定如何更新最近发布的版本。

这里有一些在 Laravel 框架 master 分支到 9.x 分支之间弃用的 兼容 特性,根据时间列出:

删除各种弃用 Pull Request #41136
删除弃用的日期属性 Pull Request #42587
删除 handleDeprecation 方法 Pull Request #42590
删除 assertTimesSent 方法 Pull Request #42592
删除 ScheduleListCommand$defaultName 属性 419471e
删除弃用的 Route::home 方法 Pull Request #42614
删除弃用的 dispatchNow Pull Request #42591

还有更多…

Laravel 10 还在几个月之后,更多新的特性和通告将陆续到来。我们将在这些宣布后更新这篇文章。你也可以查看 官方发布页面 来找到可看到的更新信息。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 12

项目才刚刚升级到laravel9哈 、laravel10等年中再升级,这样稳定一点 :blush:

1年前 评论

有点跟不上节奏了 :grin:

1年前 评论
JaguarJack 1年前

年中再升级,不然一大堆包不行的。

1年前 评论

我很好奇你们的公司项目真的一直跟着版本更新走吗,我们的php版本还是7.2的 :joy:

1年前 评论
sanders (楼主) 1年前
sanders (楼主) 1年前
王小大 1年前
sanders (楼主) 1年前
王小大 1年前
air93610 1年前

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