Laravel 8.22 发布
发布于 作者 Paul Redmond
Laravel 团队昨天发布了 8.22,其中包括一个新的事件模拟断言、一个将关联数组缩减为单个值的集合方法,以及 8.x 分支的最新更改。
断言未调度任何内容
@danilopolani 为模拟事件实例贡献了事件断言 assertNothingDispatched
。
Event::fake(); // Function that should NOT dispatch any eventEvent::assertNothingDispatched();
带键的缩减集合方法
Mo Khosh 为集合(和延迟集合)贡献了 reduceWithKeys
方法,用于将关联集合缩减为单个值。
与
map
和mapWithKeys
类似,这增强了reduce
以将关联数组的键传递到其回调函数。我们目前无法做到这一点,因为 PHP 的 array_reduce 不会将数组键传递到其回调函数。
以下是来自拉取请求的示例
$data = collect([ 'name' => 'Mo Khosh', 'username' => 'mokhosh',]); return $data->reduceWithKeys(function($carry, $value, $key) { return $carry . $key . ': ' . $value . PHP_EOL;});
发布说明
您可以在下面看到完整的新功能和更新列表,以及 8.21.0 和 8.22.0 之间的差异。以下发布说明直接来自 变更日志
v8.22.0
已添加
- 向
DetectsLostConnections
添加了新行 (#35752, #35790) - 添加了
Fakes\EventFake::assertNothingDispatched()
(#35835) - 向集合和延迟集合添加了带键的缩减 (#35839)
已修复
- 修复了 PHP 8 中
Validation\Concerns\ValidatesAttributes::validateJson()
上缺少空检查导致的错误 (#35797) - 修复了 RetryCommand 的错误 (4415b94, #35828)
- 修复了
Illuminate\Testing\PendingCommand::expectsTable()
(#35820) - 修复了
morphTo()
尝试将空字符串形态类型映射到实例 (#35824)