Laravel 8.68 Released

Laravel

Laravel 团队发布了 8.68,其中包含新的 TestResponse dd() 方法、更多 PHP 8.1 修复、「has any」JSON 断言以及 v8.x 分支中的最新更改。

这篇文章涵盖了 Laravel 的三个次要版本:v8.68、v8.67 和 v8.66。 通常 Laravel 每周都有一个小版本,但本周我们有三个小版本。 检查更改日志以获取完整的更改列表。

支持 PHP 8.1(v8.67)

Dries Vints 提供了更多PHP 8.1修复,为下个月的GA版本做准备:

  • 现在我们已经接近 PHP 8.1 发布日期,所以不再模仿 PHP 8.0。
  • 添加首选最低版本
  • 为 Symfony、PHPUnit 和 CommonMark 的最低版本添加一个单独的构建步骤,我们无法通过 Composer 修改这些版本
  • 为 PHP 8.1 兼容性增加了一些库
  • 为 PHP 8.1 上的跳过邮件测试添加了更清晰的消息,因为不会为 SwiftMailer 打补丁
  • 未跳过的 PHP 8.1 测试

将输出方法添加到 TestResponse (v8.68)

Nuno MaduroTestResponse 贡献了三个新方法,包含 dd()ddHeaders() 和 ddSession()

$response = $this->get('/example');

// 输出响应
$response->dd();

// 或者是请求头
$response->ddHeaders();

// 或者是 Session
$response->ddSession(keys: $keys);

数据库模式更新限制 (v8.68)

Melek REBAI 提供了一个迁移方法 restrictOnUpdate(),语法糖调用方式是:

// 直接使用 `onUpdate`
$table->onUpdate('restrict');

// 新的方法是
$table->restrictOnUpdate();

为 「has any」 提供 JSON 断言 (v8.66)

@Džuris 为 JSON 断言提供了一个方法 hasAny,它可以断言至少一个特定属性的存在。

$json->hasAny('data', 'errors', 'meta');

数组方法 isList() (v8.66)

Chris Kankiewicz 贡献了一个方法 Arr::isList() 用于确定一个数组(array)是否是一个列表(list)。如果一个数组的所有键都是从 0 开始的连续整数,且中间没有空元素,则该数组被判定为一个列表。点击这个 合并请求 #39277 来查看关于这个方法的讨论,以及从 v8.1 开始使用 PHP 的  array_is_list 方法。

发行说明

您可以在下面看到新特性和更新的完整列表,以及 GitHub 上8.64.0 和 8.65.0之间的差异。以下版本说明直接来自 更新日志

v8.68.0

补充

  • 将 throttlerequestwithredis 添加到 $middlewarePriority (#39316)
  • 增加 Illuminate/Database/Schema/ForeignKeyDefinition::restrictOnUpdate() (#39350)
  • 增加 ext-bcmath 作为 composer.json 的扩展建议 (#39360)
  • 增加 TestResponse::dd (#39359)

修改

  • TaggedCache刷新也应该从缓存中删除标记 (#39299)
  • 修复了匿名组件上的模型序列化问题 (#39319)

变更

  • 默认情况下的数据库工厂模型更改为 Guess (#39310)

v8.67.0

新增

  • 增加了对 MariaDB 数据库队列跳过锁定行的支持 (#39311)
  • 增加了对 PHP 8.1 的支持 (#39034)

修复

  • 修复了翻译错误 (#39298)
  • 修复了当错误码是整数时 Illuminate/Database/DetectsConcurrencyErrors::causedByConcurrencyError() 的问题 (#39280)
  • 修复了总线(Bus)中的唯一问题 (#39302)

变更

  • 默认在 CanBeOneOfMany::ofMany 中只选择相关列 (#39307)

v8.66.0

新增

  • 添加了 withoutDeprecationHandling (#39261)
  • 添加了按需创建日志的方法 (#39273)
  • 在不需要字符选项的列中增加了 dateTime (#39269)
  • 增加了 AssertableJson::hasAny (#39265)
  • 增加了 Arr::isList() 方法 (#39277)
  • 在 CanBeOneOfMany 子查询中增加了 withoutGlobalScope (#39295)
  • 增加了 Illuminate/Support/Testing/Fakes/BusFake::assertNothingDispatched() (#39286)

还原

还原

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-8-68-0

译文地址:https://learnku.com/laravel/t/62246

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!