Laravel 5.8.28 中的新合并和替换集合方法
发布于 作者 Paul Redmond
Laravel 团队昨天发布了 v5.8.28,其中包含用于合并和替换的新集合方法,以及 TestResponse
上的 Tappable
特性。
在我们介绍新的集合方法之前,TestResponse
类现在可以被点击,这提供了一种不同的方法来对测试响应进行断言。
// With tap$this->getJson('/api/users/index') ->assertStatus(200) ->tap(function (TestResponse $response) { $this->assertMatchesJsonSnapshot($response); }); // Without tap$response = $this->getJson('/api/users/index') ->assertStatus(200); $this->assertMatchesJsonSnapshot($response);
接下来,添加了一些新的集合方法,包括 mergeRecursive()
、replace()
和 replaceRecursive()
。
mergeRecursive()
方法在集合上实现了基本的 PHP array_merge_recursive
行为。
接下来是 replace()
和 replaceRecursive()
方法,分别在集合上实现了基本的 array_replace
和 array_replace_recursive
。 以下是从测试用例中摘取的示例,可能可以说明这些方法是如何工作的。
$c = new Collection(['a', 'b', 'c']);$this->assertEquals( ['a', 'd', 'e'], $c->replace([1 => 'd', 2 => 'e'])->all());
最后,添加了一个新的会话 only()
方法,用于指定和仅检索某些会话键。
$session->only(['example1', 'example2']);
您可以在 GitHub 上查看 5.8.27 和 5.8.28 之间的完整差异。 Laravel 5.8 的完整发行说明可在 GitHub 5.8 变更日志 中找到。
v5.8.28
添加
- 使 TestResponse 可点击 (#29033)
- 添加了
Support\Collection::mergeRecursive()
方法 (#29084) - 添加了
Support\Collection::replace()
和Support\Collection::replaceRecursive()
方法 (#29088) - 添加了
Session\Store::only()
方法 (#29107)
修复
恢复
更改
- 如果作业不会重试,则在作业超时后立即失败 (#29024)