Laravel 9.13版本发布

2023-06-01 00:00:00 laravel 版本 发布

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


发行说明

您可以在下面查看新功能和更新的完整列表,以及 GitHub 上 9.12.0 和 9.13.0 之间的差异。 

以下发行说明直接来自变更日志:

https://github.com/laravel/framework/compare/v9.12.0...v9.13.0
https://github.com/laravel/framework/blob/c73253e51a3365a93eed0fb745f51771b89aa53c/CHANGELOG.md#v9130---2022-05-17


添加 value() 收集方法

Steve Bauman 为 Collection 类贡献了一个 value() 方法,

该方法从集合中的第一个匹配项中获取单个键的值:

$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 方法。 

以下是拉取请求中的一些示例:

$this->getJson('/users/1')
    ->assertOk()
    ->assertJsonMissingPath('email'); // Never return the user email
 
$this->getJson('/articles')
    ->assertOk()
    ->assertJsonMissingPath('data.0.internalTags');


在通知假的测试中断言计数

@Chrysanthos 为 Notification 假类贡献了一个 assertCount 方法。 

此方法的用例是断言在测试中发送了给定数量的通知:

Notification::fake();
 
// Assert four notifications were sent
Notification::assertCount(4);


测试响应 collect() 方法

Ilya Borisov 为 TestResponse 类提供了一个 collect() 方法,

以将响应的 JSON 解码主体作为集合获取:

// Get the whole test response as a collection
$response->collect();
 
/*
Given the following array of data for a JSON response
[
    'foo' => ['foobar_foo' => 'foo', 'foobar_bar' => 'bar'],
    ...
];
*/
 
// Returns a collection instance with:
// ['foobar_foo' => 'foo', 'foobar_bar' => 'bar']
$response->collect('foo')


数组 map() 方法

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

// Arr::map() example
$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 在其他特征中的使用 (#42350)
修复断言在没有消息的情况下抛出异常 (#42360)

改变了

跳过 HTTP 客户端中原始帖子正文的参数解析 (#42364)
验证规则之间的数字和数字之间的一致性 (#42358)
更正了 BatchedTableCommand 中使用“failed_jobs”而不是“job_batches”的问题 (#42389)
更新 email.blade.php (#42388)
移除旧的 monolog 1.x 兼容代码 (#42392)
SesTransport:使用正确的标签参数 (#42390)
实现对异常代码转发的稳健处理 (#42393)

转:

https://laravel-news.com/laravel-9-13-0

相关文章