看看Laravel 10会有什么变化

2023-06-01 00:00:00 laravel 变化 会有什么

Laravel v10是Laravel的下一个主要版本, 计划于2023年2月7日发布. 

在这篇文章中, 我们想概述一下我们所知道的所有新功能和变化.


我们鼓励你在接下来的几周内查看这个帖子,因为我们将继续监测Laravel 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: 2月8日, 2022
Laravel 10: 2月7日, 2023
Laravel 11: 2月6日, 2024年

Laravel 9将继续得到bug修复,直到2023年8月8日,以及安全修复,直到2024年2月6日。

你可以期待Laravel 10的bug修复到2024年8月6日,安全修复到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开始废弃的方法

在Laravel 9中标记为废弃的方法将在Laravel 10中被删除。

我们可以期待发布升级指南来概述所有被废弃的方法, 潜在的影响评估, 以及如何在接近发布时升级.


以下是在撰写本文时,在Laravel框架的主分支和9.x分支的对比中发现的一些弃用情况:

删除各种缺失 Pull Request #41136
删除Pull Request #42587中已废弃的dates属性
删除 Pull Request #42590 中的 handleDeprecation 方法
删除已废弃的 assertTimesSent 方法 Pull Request #42592
删除已废弃的 ScheduleListCommand 的 $defaultName 属性 419471e
删除已废弃的 Route::home 方法 Pull Request #42614
删除过时的 dispatchNow 功能 Pull Request #42591


更多...

距离Laravel 10还有几个月的时间, 更多的新功能和公告将陆续发布. 

我们将更新这个帖子,因为这些被宣布。

你也可以查看官方发布的页面,以寻找更新的信息,因为它变得可用。

https://laravel.com/docs/master/releases

转:

https://laravel-news.com/laravel-10

相关文章