Laravel 8.29 发布
发表于 作者: Paul Redmond
Laravel 团队昨天发布了 8.29 版本,其中包含并行测试中的 "setUpTestDatabase()" 回调、工厂序列中对闭包的支持、HTTP 客户端响应的 collect() 方法以及 8.x 分支中的最新更改。
将设置测试数据库支持添加到并行测试
Nuno Maduro 为支持并行测试贡献了 setUpTestDatabase
方法。Nuno 在他的 拉取请求描述 中解释了添加此功能的原因。
由于我们在 Laravel 中添加了并行测试,一些人报告说没有简单的方法来播种测试数据库。通过此拉取请求,用户可以像这样播种他们的测试数据库
namespace App\Providers; use Illuminate\Support\Facades\ParallelTesting;use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider{ /** * Bootstrap any application services. * * @return void */ public function boot() { ParallelTesting::setUpTestDatabase(function () { Artisan::call('db:seed'); }); }}
您可以在测试文档中的 并行测试钩子 部分找到此功能的文档。
数据库工厂序列中的闭包
Taylor Otwell 贡献了工厂 序列 中对闭包的支持。每次序列需要新值时都会调用闭包。以下是官方文档中的一个示例
$users = User::factory() ->count(10) ->state(new Sequence( fn() => ['role' => UserRoles::all()->random()], )) ->create();
在 HTTP 客户端响应中添加了 Collect 方法
Luke Downing 在 HTTP 客户端响应上贡献了一个 collect()
方法,该方法将 HTTP JSON 响应检索为一个集合。
// Returns a collectionHttp::get("https://api.foo.bar/users")->collect(); // collect is syntatic sugar for the followingcollect(Http::get("https://api.foo.bar/users")->json());
发布说明
您可以在下面查看新功能和更新的完整列表,以及 8.28.0 和 8.29.0 之间的差异。以下发布说明直接来自 变更日志
v8.29.0
已添加
- 支持 predis 的用户名参数 (#36299)
- 将 "setUpTestDatabase" 支持添加到并行测试 (#36301)
- 在序列中添加了对闭包的支持 (3c66f6c)
- 添加了门控评估事件 (0c6f5f7)
- 在 HTTP 客户端响应中添加了一个
collect
方法 (#36331) - 允许 Blade 的服务注入使用类名解析注入服务 (#36356)
已修复
- 已修复:在 PHP8 中使用 withoutMiddleware() 和基于闭包的中介会抛出异常 (#36293)
- 已修复:分页链接中页码的标签应始终为字符串 (#36292)
- 清除测试之间的自定义队列负载 (#36295)
- 已修复 redis 集群的 flushDb (cache:clear) (#36281)
- 已修复加密作业的重试命令 (#36334, 2fb5e44)
- 确保
trait_uses_recursive
返回数组 (#36335)