Laravel团队发布了9.28版本,增加了控制台信号陷阱,测试视图数据断言,防止默默丢弃可填充值,等等。
添加视图数据断言到TestView
Andrew Brown贡献了三个TestView 断言方法来断言视图数据:
$view = $this->view('welcome', [
'name' => 'Taylor',
'email' => 'user@example.com'
]);
$view->assertViewHas('name'); // true
$view->assertViewHas('name', 'Tyler'); // false
$view->assertViewHasAll(['name', 'email']); // true
$view->assertViewHasAll([
'name' => 'Taylor',
'email' => 'user@example.com',
]); // true
$view->assertViewMissing('nonda'); // true
$view->assertViewMissing('name'); // false
从重定向器中获取预期的会话URL
D.Nagy Gergő在Redirector 类上贡献了一个getIntendedUrl() 方法,以获取和设置预定的重定向URL。
$redirect->setIntendedUrl('http://foo.com/bar');
$redirect->getIntendedUrl(); // http://foo.com/bar
Eloquent模式,防止默默地丢弃属性的填充物
Ralph J. Smit贡献了一个模型方法来防止丢弃填充物,即使一个模型没有被完全保护。如果你工作在一个使用可填充字段的Laravel代码库中,但你也不想默默地丢弃传递的数据,这就很有用。
这个模型是可以通过一些方式来切换的; 例如, 你可以使用环境只在非生产环境中触发异常:
Model::preventSilentlyDiscardingAttributes();
// Only prevent in non-production environments
Model::preventSilentlyDiscardingAttributes(
! app()->isProduction()
);
信号陷阱
Nuno Maduro贡献了信号陷阱的引入,它允许你在信号发生时捕捉进程信号并执行代码。
$this->trap(SIGINT, function () {
// End the command's job gracefully ...
// E.g: clean created files, etc ...
$this->continue = false;
});
// trap multiple signals
$this->trap([SIGTERM, SIGQUIT], function ($signal) {
$this->running = false;
dump($signal); // SIGTERM or SIGQUIT
});
支持向Stringable方法传递Enumerable对象
Erik Gaal贡献了将可枚举对象传递给Stringable辅助函数的能力。
// Before
Str::remove($months->toArray(), $someString);
// After with an Enumerable object
Str::remove($months, $someString);
发布说明
你可以在GitHub上看到以下完整的新功能和更新列表以及9.27.0和9.28.0之间的差异。下面的发布说明是直接来自于更新日志。
v9.28.0
新增
- 为TestView添加了视图数据断言(#43923)
- 添加了
Illuminate/Routing/Redirector::getIntendedUrl()(#43938) - 增加了Eloquent模式,防止以前默默地丢弃不在$fillable中的属性的填充(#43893)。
- 添加
Illuminate/Testing/PendingCommand::assertOk()(#43968) - 使得应用程序可被宏观化(#43966)
- 引入信号陷阱(#43933)
- 允许注册命令的实例(#43986)
- 在Stringable中支持Enumerable(#44012)
修复了
- 修正了RoueGroup::merge,使合并后的前缀格式正确。(#44011)
- 修复了AwsS3V3Adapter上的providesTemporaryUrls(#44009)。
- 修复了使用@vite时样式表的排序(#43962)。