Laravel 10版本发布

2023-06-01 00:00:00 laravel 版本 发布

Laravel 10已经发布,包括最小的PHP v8.1版本,一个新的Laravel Pennant包,可调用的验证规则,本地类型声明,以及更多...


Laravel发布时间表

在Laravel 9之前, 主要的框架版本是每年发布两次, 或者大约每6个月一次. 

从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月14日
Laravel 11: 2024年第一季度

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

你可以期待Laravel 10的bug修复到2024年8月6日,以及安全修复到2025年2月14日。


让我们来看看Laravel 10中的一些大的新功能:

Laravel 10放弃了对PHP 8.0的支持

Laravel框架将在Laravel 10中放弃对PHP<=v8.0的支持。

最低要求的版本是PHP ^8.1。

浏览master和9.x的对比,我们可以期待看到8.1的功能在框架中的使用,例如只读属性。


Laravel Pennant

Laravel Pennant是一个由Laravel团队创建的软件包,将与Laravel 10一起到来,并为您的应用程序提供功能标志。

>功能标志使你能够自信地逐步推出新的应用功能,A/B测试新的界面设计,
赞美基于主干的开发策略,以及更多。

这个软件包是核心团队提供的官方软件包阵容中最新的一个,这意味着我们现在有一个构建良好、经过测试的软件包,为我们提供了一些伟大的功能。


Laravel的进程层

Laravel的Process服务使测试和运行CLI进程成为一个梦想.

use Illuminate\Support\Facades\Process;
 
$result = Process::run('ls -la');
 
$result->successful();
$result->failed();
$result->exitCode();
$result->output();
$result->errorOutput();
$result->throw();
$result->throwIf($condition);

流程层包括开箱即用的丰富功能,如:

流利的进程方法,在运行前建立一个进程实例
进程输出处理,因为它被接收
异步进程
进程池
通过fake()实现丰富的测试功能
在测试过程中防止游离的进程

测试进程从未如此简单。


Laravel 10骨架中的本地类型声明

在Laravel 10中, 应用程序的骨架代码将有本地类型声明。

这意味着任何由框架生成的用户区代码都会有类型提示和返回类型。

我们的文章讨论了围绕这个方法的注意事项, 我们认为在未来创建新项目时,你会喜欢增加的类型。


类型的添加方式是为Laravel项目带来最新的PHP类型提示功能,

而不会破坏框架层面的后向兼容性:

返回类型
方法参数
冗余的注解被尽可能的移除
允许用户在闭合参数中的土地类型
不包括类型化的属性


可调用的验证规则是默认的

从Laravel 10开始, 可调用的验证规则现在是默认的. 

当你通过artisan创建一个新的验证规则时, 这是你可以期待的:

# Laravel 9 creates a rule class that implements the
# Illuminate\Contracts\Validation\Rule interface
artisan make:rule Uppercase
 
# Laravel 9 flag to create an invokable and implicit rule
artisan make:rule Uppercase --invokable
artisan make:rule Uppercase --invokable --implicit
 
# Laravel 10 creates an invokable rule by default
artisan make:rule Uppercase
 
# Laravel 10 implicit rule
artisan make:rule Uppercase --implicit


测试的配置文件选项

Laravel 10的一个新功能是--profile选项,这将使你很容易找到你的应用程序中任何缓慢的测试。

1.png

这个--profile选项应该有助于保持你的测试速度,并帮助你修复缓慢的测试,或者更好地将它们分组,使之更容易不一直运行它们。


新的字符串密码帮助器

Str::password方法可以生成一个安全的、随机的、指定长度的密码。

该密码将由字母、数字、符号和空格的组合组成。

默认情况下,密码长度为32个字符:

use Illuminate\Support\Str;
 
$password = Str::password();
 
// 'EbJo2vE-AS:U,$%_gkrV4n,q~1xy/-_4'
 
$password = Str::password(12);
 
// 'qwuar>#V|i]N'


从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

如果你想现在就开始测试Laravel 10, 你可以通过使用 --dev 标志在一个新的项目中安装它:

laravel new <your-project-name> --dev

升级到Laravel 10

最简单的升级方式是利用Laravel Shift,它可以自动始终保持你的应用程序是最新的,或者遵循升级指南。

https://laravelshift.com/shifts
https://laravel.com/docs/10.x/upgrade

还有更多...

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

https://laravel.com/docs/10.x/releases

转:

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

相关文章