Laravel 6.1 新增 Eager Lazy 集合
发布日期 作者: Paul Redmond
Laravel 团队宣布立即发布 Laravel v6.1.0,其中 Lazy 集合新增了 eager()
方法,以及 Laravel 6 的最新更新。
LazyCollections - Laravel 6 中新增的功能 - 现在拥有一个 eager()
方法,它“枚举所有 Lazy 集合的值,并构建一个新的 LazyCollection
实例,该实例现在将由数组支持。”
来自 pull request #29832 的示例展示了它的使用方法
$users = User::cursor(); $users = $users->eager(); $count = $users->count(); $users->each(function ($user) { //});
如果没有 eager()
,上面的代码将获取结果两次。
接下来,将 purge()
和 getChannels()
方法添加到 LogManager
类中,以清除已解析的日志驱动程序/通道。 pull request #30132 中的测试展示了它的使用方法
public function testLogMnagerPurgeResolvedChannels(){ $manager = new LogManager($this->app); $this->assertEmpty($manager->getChannels()); $manager->channel('single')->getLogger(); $this->assertCount(1, $manager->getChannels()); $manager->purge('single'); $this->assertEmpty($manager->getChannels());}
接下来,向 TestResponse
类添加了一个新的 assertNoContent()
方法
// Before$response = $this->get('api/endpoint'); $response->assertStatus(409);$this->assertEmpty($response->content()); // After$response = $this->get('api/endpoint'); $response->assertNoContent(409);
接下来,向 TestResponse
添加了一个新的 withCookies
方法,使在 HTTP 测试中发送 cookie 更容易
// Before$cookies = [ 'name1' => encrypt('value1'), 'name2' => encrypt('value2')];$response = $this->call('get', 'test', [], $cookies); // After$response = $this->withCookies([ 'name1' => 'value1', 'name2' => 'value2'])->get('test');
您可以在下面查看新功能和更新的完整列表,以及 6.0.4 和 6.1.0 之间的完整差异。Laravel 6.0 的完整发行说明在 GitHub v6 changelog 中提供
v6.1.0
添加
- 添加了
Illuminate\Support\LazyCollection::eager()
方法 (#29832) - 添加了
purge()
和getChannels()
方法到Illuminate\Log\LogManager
(#30132, a52a0dd) - 添加了
Illuminate\Foundation\Testing\TestResponse::assertNoContent()
方法 (#30125) - 添加了
InteractsWithQueue
到SendQueueNotifications
(#30140) - 添加了
SendQueueNotifications::retryUntil()
方法 (#30141) - 添加了使用测试请求发送 cookie 的方法 (#30101)
- 添加了对排队通知的作业中间件的支持 (#30070)
修复
- 修复了
make:migration
命令中的迁移类重复检查 (#30095) - 修复了 monolog v2 处理程序准备 (#30123)
- 修复了 DurationLimiter 的回调值返回值 (#30143)
更改
- 添加了种子器的运行时信息输出 (#30086)
- 添加了
Illuminate\Foundation\Testing\TestResponse::assertJsonPath()
的严格参数 (#30142) - 添加了
Foundation\Testing\Concerns\InteractsWithDatabase::assertSoftDeleted()
的deletedAtColumn
可选参数 (#30111)
改进
- 如果守卫未初始化,则改进了
AuthServiceProvider::registerEventRebindHandler()
(#30105)