Laravel 9.28 发布
Laravel 团队发布了 9.28,其中包含控制台信号捕获、测试视图数据断言、防止 Eloquent 静默丢弃 fillable 以外的数据等等:
将视图数据断言添加到 TestView
Andrew Brown 贡献了 3 个 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ő 贡献了 getIntendedUrl()
方法来获取和设置预期的重定向 URL:
$redirect->setIntendedUrl('http://foo.com/bar');
$redirect->getIntendedUrl(); // http://foo.com/bar
Eloquent 以防止静默丢弃不在 fillable 中的字段
Ralph J. Smit 贡献了一个模型方法来防止丢弃 $fillable
以外的数据,即使模型没有完全受到保护。 当你的模型设置了 $fillable
又不想丢弃 $fillable
之外的数据时,这非常有用。
该模型可以通过几种方式切换; 例如:可以使用环境仅在非生产环境中触发异常:
Model::preventSilentlyDiscardingAttributes();
// 仅在非生产环境中防止
Model::preventSilentlyDiscardingAttributes(
! app()->isProduction()
);
信号捕获
Nuno Maduro 贡献了信号捕获,允许你捕获进程信号并在它们发生时执行代码:
$this->trap(SIGINT, function () {
// 优雅地结束命令的工作......
// 例如清理创建的文件等...
$this->continue = false;
});
// 捕获多个信号
$this->trap([SIGTERM, SIGQUIT], function ($signal) {
$this->running = false;
dump($signal); // SIGTERM 或 SIGQUIT
});
支持将 Enumerable 对象传递给 Stringable 方法
Erik Gaal 贡献了将可枚举对象传递给 Stringable 辅助函数的功能:
// 之前
Str::remove($months->toArray(), $someString);
// 使用 Enumerable 对象之后
Str::remove($months, $someString);
发行日志
你可以在下面查看新功能和更新的完整列表以及 9.27.0 和 9.28.0 之间的差异在 GitHub 上。 以下发行说明直接来自 changelog:
v9.28.0
新增
- 向 TestView 添加了视图数据断言 (#43923)
- 新增
Illuminate/Routing/Redirector::getIntendedUrl()
(#43938) - 添加了 Eloquent 模式以防止默默地丢弃不在 $fillable 中的属性的数据 (#43893)
- 添加了
Illuminate/Testing/PendingCommand::assertOk()
(#43968) - 使应用程序可使用 macro (#43966)
- 介绍信号捕获 (#43933)
- 允许注册命令实例(#43986)
- 支持 Stringable 中的 Enumerable (#44012)
修复
- 修复了 RoueGroup::merge 以正确格式化合并的前缀。 (#44011)
- 修复了 AwsS3V3Adapter 上的提供临时 URL (#44009)
- 修复使用 @vite 时样式表的顺序 (#43962)
更新
- 允许调用规则来指定自定义消息 (#43925)
- 支持自定义模型转换的对象,如 GMP (#43959)
- 默认 404 消息在 denyAsNotFound (#43901)
- 为 isVariadic() 更改了
Illuminate/Container/Container::resolvePrimitive()
(#43985) - 允许验证器消息使用嵌套数组 (#43981)
- 确保 freezeUuids 在创建回调异常后始终重置 UUID (#44018)
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
6的飞起
就看懂2个有啥用