Laravel 5.8.24 发布
发布日期 作者 Paul Redmond
Laravel 团队昨天发布了 v5.8.24 版本,其中包含新的 TestResponse
功能和其他各种质量改进。
首先,assertSessionHas
方法现在可以利用闭包来断言会话中包含某个数据。虽然会话通常只包含简单值,但以下示例来自 pull request
// Before$response->assertSessionHas('authenticatable');$this->assertTrue($user->is(session('authenticatable'))); // After$response->assertSessionHas('authenticatable', function ($authenticatable) use ($user) { return $user->is($authenticatable);});
接下来,TestResponse
类中添加了新的 assertUnauthorized
方法,用于方便地断言 401
状态代码
$response->assertUnauthorized();
接下来,可以通过 SERVER_PORT
环境变量为 Artisan serve 命令定义服务器端口
# Before 5.8.24php artisan serve --port=9005 # Via env or in the .env fileexport SERVER_PORT="9005"php artisan serve
接下来,retry()
帮助器中添加了一个可选的 $when
参数,它允许使用回调来决定是否重试。我认为 提交中的单元测试 有助于说明用法
$attempts = retry(2, function ($attempts) { if ($attempts > 1) { return $attempts; } throw new RuntimeException;}, 100, function ($ex) { return true;}); // Make sure we made two attempts$this->assertEquals(2, $attempts); // Make sure we waited 100ms for the first attempt$this->assertTrue(microtime(true) - $startTime >= 0.1);
最后,在使用带有 —env
标志的 artisan 控制台时,进行了良好的质量改进。以前,env
标志只能通过等号 (—env=dev
) 正确解析,但现在可以使用空格了
php artisan --env dev the:command
您可以在下面查看完整的修复列表,以及 5.8.23 和 5.8.24 之间的完整差异,可以在 GitHub 上找到。Laravel 5.8 的完整发行说明可以在 GitHub 5.8 变更日志 中找到
v5.8.24
新增
- 在
TestResponse::assertSessionHas()
中添加了通过闭包断言会话中包含某个数据的可能性 (#28837) - 添加了
TestResponse::assertUnauthorized()
(#28851) - 允许通过
SERVER_PORT
环境变量在ServeCommand
中定义端口 (#28849, 6a18e73) - 允许使用空格分隔控制台环境参数 (#28869)
- 添加了
@endcomponentFirst
指令 (#28884) - 在
retry
帮助器中添加了可选参数$when
(85c0801)
修复
- 修复了带有全局范围的
Builder::dump()
和Builder::dd()
(#28858)
回退
变更
- 在路由器中将
SuspiciousOperationException
处理为NotFoundHttpException
(#28866)