Laravel 10 现已发布!

发布日期 作者

Laravel 10 is now released! image

Laravel 10 现已发布,包括最低 PHP v8.1 版本、新的 Laravel Pennant 包、可调用验证规则、原生类型声明等...

Laravel 发布计划

Laravel 9 之前,主要框架版本每年发布两次,大约每六个月发布一次。从 Laravel 9 开始,核心团队改为了年度发布计划,在 2022 年 2 月发布了 Laravel 9(而不是原计划的 2021 年 9 月)

Laravel 使用各种社区驱动的包以及九个 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 将继续获得错误修复,直到 **2023 年 8 月 8 日**,安全修复直到 **2024 年 2 月 14 日**。

您可以预期 Laravel 10 错误修复直到 **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 进程服务 使测试和运行 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 中,应用程序骨架代码将具有原生类型声明。这意味着框架生成的任何用户代码都将具有类型提示和返回类型。我们的文章讨论了这种方法的注意事项,我们认为您将来在创建新项目时会喜欢这些新增的类型。

类型以一种将最新的 PHP 类型提示功能引入 Laravel 项目的方式添加,而不会在框架级别破坏向后兼容性

  • 返回类型
  • 方法参数
  • 尽可能删除冗余注释
  • 允许用户代码中的闭包参数类型
  • 不包括类型化属性

可调用验证规则为默认规则

从 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 框架的 master 分支与 9.x 分支的 比较 中发现的一些弃用

测试 Laravel 10

如果您想立即开始测试 Laravel 10,您可以使用 --dev 标志在新项目中安装它

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

升级到 Laravel 10

升级最简单的方法是使用 Laravel Shift,它可以自动始终保持您的应用程序更新,或者按照 升级指南 进行操作。

以及更多...

您也可以查看官方发布页面,以便在更新信息可用时查看。

Paul Redmond photo

Laravel News 的撰稿人。全栈 web 开发人员和作者。

归档于
Cube

Laravel 新闻

加入 40,000 多名其他开发者,绝不错过新的技巧、教程等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和对本地和生产环境的即时反馈进行 Tinker。

Tinkerwell
No Compromises logo

不妥协

Joel 和 Aaron,两位来自 No Compromises 播客的经验丰富的开发人员,现在可供您的 Laravel 项目雇用。⬧ 每月固定费用 7500 美元。 ⬧ 没有冗长的销售流程。 ⬧ 没有合同。 ⬧ 100% 退款保证。

不妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,以确保您的 Web 应用程序取得成功。

Kirschbaum
Shift logo

Shift

运行旧版 Laravel 版本?即时、自动化的 Laravel 升级和代码现代化,让您的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

使用经验丰富的 Laravel 开发人员为您的项目注入活力,该开发人员拥有 4-6 年的经验,每月只需 2500 美元。获得 160 小时的专业知识和 15 天的无风险试用。立即安排通话!

Bacancy
Lucky Media logo

Lucky Media

立即获得 Lucky - Laravel 开发的理想选择,拥有十多年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 的电子商务。一个开源软件包,将现代无头电子商务功能的强大功能带入 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 招聘信息板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动工具包

SaaSykit 是一款 Laravel SaaS 启动工具包,包含运行现代 SaaS 所需的所有功能。支付、漂亮的结账、管理面板、用户仪表板、身份验证、现成组件、统计信息、博客、文档等。

SaaSykit:Laravel SaaS 启动工具包
Rector logo

Rector

您无缝升级 Laravel、降低成本和加速创新的合作伙伴,为成功公司提供支持

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解 MongoDB 的灵活、现代数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的无依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

在您的 Laravel 应用程序中添加 Swagger UI

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel Prompts 构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 包为您的 Laravel 应用程序添加评论

阅读文章