Laravel 9.13 发布

Laravel 团队发布的 9.13 版本,其中包含一个 value() 的集合方法, 新的测试响应助手,一个数组映射便利方法等:

发行说明

您可以在以下看到新功能和更新的完整列表,以及在 GitHub 上查看 9.12.0 and 9.13.0 之间的差异。以下发行说明直接来自于 changelog:

新增 value( ) 集合方法

Steve Bauman 为集合类贡献了一个 value() 方法,该方法从集合中的第一个匹配项中获取单个 key 的值:

$c = new $collection([
    ['id' => 1, 'name' => 'Hello'],
    ['id' => 2, 'name' => 'World']
]);

$this->assertEquals('Hello', $c->value('name'));
$this->assertEquals('World', $c->where('id', 2)->value('name'));

明确 JSON 去除路径测试响应助手

Danilo Polani 为 TestResponse 类贡献了一个  assertJsonMissingPath 方法。这里有一些来自 PR 的示例:

$this->getJson('/users/1')
    ->assertOk()
    ->assertJsonMissingPath('email'); // Never return the user email

$this->getJson('/articles')
    ->assertOk()
    ->assertJsonMissingPath('data.0.internalTags');

在带有通知伪造的测试中明确数量

@Chrysanthos 为通知伪造类贡献了一个 assertCount 方法。该方法的使用案例是明确测试中发送了给定数量的通知:

Notification::fake();

// 明确 4 个通知已被发出
Notification::assertCount(4);

测试响应 collect() 方法

Ilya Borisov 为 TestResponse 类贡献了一个 collect() 方法,以将 TestResponse 类获取响应的 JSON 解码作为一个集合:

// 获取整个测试响应作为一个集合
$response->collect();

/*
给定以下JSON响应的数据数组
[
    'foo' => ['foobar_foo' => 'foo', 'foobar_bar' => 'bar'],
    ...
];
*/

//返回一个集合实例:
// ['foobar_foo' => 'foo', 'foobar_bar' => 'bar']
$response->collect('foo')

Array map() 方法

Daniel Eckermann 贡献了一个 Arr::map() 方法:

// Arr::map() 示例
$data = ['first' => 'taylor', 'last' => 'otwell'];
$mapped = Arr::map($data, function ($value, $key) {
    return $key.'-'.strrev($value);
});

v9.13.0

新增

  • 添加了 Illuminate/Collections/Traits/EnumeratesValues::value() (#42257)
  • 添加了新的 TestResponse 助手:assertJsonMissingPath (#42361)
  • 添加了 Illuminate/Support/Testing/Fakes/NotificationFake::assertCount() (#42366)
  • 添加了新的 DetectLostConnections (#42377, #42382)
  • 添加了 Illuminate/Testing/TestResponse::collect() (#42384)
  • schedule:list 添加了完整的可调用支持 (#42400)
  • 添加了Illuminate/Collections/Arr::map()#42398

修复

  • 修复了 PruneCommand 在其他 Traits 中的使用 (#42350)
  • 修复断言在没有消息的情况下抛出异常的问题 (#42360)

变更

  • 在 HTTP 客户端中跳过原始帖子正文的参数解析 (#42364)
  • 调整 between 和 digits_between 验证规则的一致性 (#42358)
  • 更正了 BatchedTableCommand 中使用 failed_jobs 而不是 job_batches 的问题 (#42389)
  • 更新 email.blade.php (#42388)
  • 移除旧的 monolog 1.x 兼容代码 (#42392)
  • SesTransport:使用正确的标签参数 (#42390)
  • 实现对异常代码转发的稳健处理 (#42393)
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-9-13-0

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

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

file @summer

1年前 评论
laravel_peng 1年前

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