Laravel 10:新功能和最新更新

言鼎科技 2023-05-25 288

六个月发布一次。然而,在 2022 年 2 月 Laravel 9 发布后,核心团队转向了年度发布时间表,如下所示:

🟠 Laravel 9:2022 年 2 月 8 日,
🟠 Laravel 10:2023 年 2 月 13 日,
🟠 Laravel 11:2024 年 2 月 6 日

根据Laravel 官方新闻页面,Laravel 9 将在 2023 年 8 月 8 日之前收到预定的错误修复,并在 2024 年 2 月 6 日之前收到安全修复。同时,Laravel 10 预计将在 2024 年 8 月 6 日之前收到错误修复,并在 2024 年 8 月 6 日之前收到安全修复。 2025 年 2 月 4 日。

Laravel 10 的新特性:最新功能和更新

框架背后的核心团队始终致力于为用户带来最好的,这就是为什么在应用程序或程序包中引用框架或其组件时建议使用“^10.0”等版本限制的原因。这是因为较新的版本可能会带来值得注意的更改和更新。当前的 Laravel 10 还具有多项实质性改进,这将使产品所有者受益。让我们仔细看看这些变化:

🟠 不再支持 PHP 8.0

Laravel 10 不再支持 PHP 8.0,必须升级到 PHP 8.1 或 8.2。虽然没有必要在 Laravel 发布后立即将您的 Laravel 应用程序更新到最新版本。但是,仍然建议进行彻底的测试,尤其是对于有付费客户或员工的项目。此外,对 Predis v1 的支持已随 PHP 8.0 一起停止,您必须升级到 Predis v2。

🟠 引入了 Laravel 三角旗

Laravel Pennat 是一个简单且轻量级的功能标志包,可让您轻松地在应用程序中推出新功能。包括A/B测试接口设计,支持基于主干的开发策略等。功能标志允许在运行时打开或关闭功能而不更改代码。

🟠 简单的流程处理

Laravel 为 Symphony Process 组件提供了一个简单而广泛的 API,使您能够轻松地在 Laravel 应用程序中运行外部进程。此过程功能解决了常见的用例,提供了高度改进的开发体验。

🟠 默认可调用验证规则

使用 Laravel 9,在创建新的 Invokable 规则时,必须在 artisan 命令之后添加 –invokable 标志。然而,在 Laravel 10 中,您可以简单地运行以下命令来创建一个新的 Invokable 规则:

Laravel 10:新功能和最新更新
php artisan make:rule 自定义规则

此外,样板代码简单易懂,使开发人员创建自己的自定义验证规则的难度降低。

🟠 带有类型声明的应用程序骨架代码

过去,Laravel 在其骨架代码中使用 DocBlocks 来清楚地解释特定代码的功能及其传递的响应或参数。然而,使用最新的类型声明,框架内的所有用户代码现在都将具有类型提示和返回类型。这些增强功能具有额外的好处,并且不会影响核心框架的向后兼容性。这包括方法参数、返回类型、可行时消除不必要的注释、排除类型属性以及允许用户访问闭包参数。

🟠 移除了 dispatchNow()

在 Laravel 10 中,'dispatchNow()'方法已被删除,因为它在 Laravel 9 中被弃用,取而代之的是'dispatchSync()'必须在所有现有项目中替换它,因为它构成了重大更改,但解决方案很简单。

🟠 Laravel 9 的弃用

随着最近对 Laravel 的更新,该团队正在逐步淘汰 Laravel 10 分支中已弃用的方法,这些方法存在于 Laravel 9 中。有关升级过程的 Laravel 文档的更新,包括所有已弃用方法和包的列表,存在于文档。那些计划将他们的项目升级到 Laravel v10 的人将需要用一种新的方法重写他们的代码以达到预期的结果。从 9 到 master 分支的一些弃用和删除包括:

  • 路线::主页方法, 在 Laravel 9 中被弃用

  • 获取基础查询方法,它有一个 toBase 等价物

  • 维护模式异常类,不再使用

  • 模拟应用服务特征

  • 邮件::失败邮件中的方法假

  • 使用建议$演员表而不是弃用$日期财产

  • 断言发送时间()方法

  • 支持Predis 1 和 doctrine/dbal 2不再可用

  • 所有相关的弃用学说/dbal因为 Laravel 已经放弃了对版本 2 的支持。

你应该升级到 Laravel 10 吗?

请务必注意,Laravel 是一个开源框架,因此每次您在设备上安装一个新实例时,您都拥有代码库。即使您的版本不再受支持,您的应用程序仍可运行。但是,您将负责自行维护该版本。建议优先考虑稳定性而不是升级框架。只有在以下情况下才考虑升级到 Laravel 10:

  • 您当前的 Laravel 应用程序稳定且运行正常。

  • 升级将带来必要的功能或解决可增强应用程序性能的严重错误。

  • 在生产环境中实施升级之前,您已经对您的应用程序进行了全面测试。

如何从 Laravel 9 升级到 Laravel 10

随着 Laravel v10 的正式发布,使用 Laravel 10.x Shift 将您当前的 Laravel 应用程序升级到新版本将变得轻而易举。该工具可自动从 Laravel 9 升级到 Laravel 10,为您节省多达 2 小时的宝贵时间。重要的是要注意 Laravel 和 Laravel 10.x Shift 都会收到定期更新,那些使用 Shift 的人可以在需要时请求重新运行。

🟠要求

要将您当前的 Laravel 应用程序升级到 Laravel 10,必须满足一些基本要求:

  • 您的 Laravel 应用程序必须在 Laravel 9 或更高版本上

  • 您的服务器必须安装 PHP 8.1 或更高版本。

🟠 核心升级

Shift 自动化了 Laravel 升级指南中概述的许多升级,包括 -

  • Laravel 核心项目文件升级

  • 更改接口的新方法

  • 向 Laravel 应用程序添加 PHP 类型的提示

  • 将弃用的 $dates 属性转换为 $casts

  • 更新 Laravel 10 和 PHP 8.1 的核心依赖项

  • 删除 PHP DocBlocks 中的冗余输入

  • 在应用程序代码中检测到已弃用的代码。

🟠 额外升级

除了核心升级外,Shift 还提供 Laravel 升级指南中提到的额外升级,例如:

  • PHP 语法的现代化,包括使用 null 安全运算符和短数组

  • 能够应用您喜欢的代码风格

  • 采用元组语法和基于类的路由

  • 转换为匿名迁移

  • PHPUnit 9 所需的自动更改

  • Faker 属性访问到方法调用的转换

  • 更新配置文件以反映 Laravel 10 版本

  • 增加了流行包的依赖性约束。

🟠 手动升级

虽然 Laravel 10.x Shift 旨在自动化尽可能多的升级;可能有些更新无法自动完成。在这种情况下,它会检测这些更新并在拉取请求中以评论的形式提供详细说明,概述手动实施的必要步骤。

尽管 Shift 努力检测并自动升级流行的依赖项,但仍可能需要手动实施。建议查看更改日志以了解依赖项和任何其他更改,以确保升级成功。

结论

我们对 Laravel 10 的新特性的概述到此结束,包括它的特性、更新和要求。我们希望这篇博文能让您深入了解最新版本的框架。但是,如果您是企业主,不确定是否将现有的 Laravel 应用程序升级到 Laravel 10,或者如果您正在考虑一个新项目并且想知道 Laravel 是否是满足您需求的正确解决方案,请聘请像 Bacancy 这样的 Laravel 开发公司我们的专家团队将指导您完成 Web 应用程序开发之旅的每一步,减轻您可能遇到的任何压力或顾虑。

The End