Laravel 10版本发布
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选项,这将使你很容易找到你的应用程序中任何缓慢的测试。
这个--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
相关文章