Laravel 9.22 发布
Laravel 团队发布了 9.22,其中包含重新设计的 artisan serve 命令、流畅的文件验证规则构建器等。让我们来看看最新的 Laravel 9 版本中的所有优点:
流畅的文件验证规则
Luke Downing 贡献了一个文件验证规则对象,它提供了一个流畅的接口,如 Password
验证规则:
// 之前的写法
$request->validate([
'file' => ['required', 'file', 'mimes:mp3,wav,aac', 'max:12287'],
'image' => ['required', 'file', 'image', 'min:2048', 'max:12287', Rule::dimensions()->maxWidth(1000)->maxHeight(500)],
]);
// 之后的写法
$request->validate([
'file' => ['required', File::types(['mp3', 'wav', 'aac'])->smallerThan(12 * 1024)],
'image' => ['required', File::image()->atLeast(2 * 1024)->smallerThan(12 * 1024)->dimensions(Rule::dimensions()->maxWidth(1000)->maxHeight(500))],
]);
Pull Request #43271 提供了有关可用方法的更多详细信息。此外,验证文档还包含有关使用新的 fluent 规则构建器的验证文件的详细信息。
改进的 Artisan 服务命令
在 fresh Look for Artisan 之后,Nuno Maduro 贡献了一个改进的 Artisan 服务命令:
查看 Pull Request #43375 了解更多屏幕截图和有关这些更改的详细信息。
在 MailMessage 中附加一组文件
Delowar Hossain 和 Tim MacDonald 合作开发了一种用于邮件消息的 attachMany()
方法:
$mailable->attachMany([
'/forge.svg',
'/vapor.svg' => ['as' => 'Vapor Logo.svg', 'mime' => 'text/css'],
new class() implements Attachable
{
public function toMailAttachment()
{
return Attachment::fromPath('/foo.jpg')->as('bar')->withMime('image/png');
}
},
]);
请注意,你还可以多次调用 attach()
- 当你想以数组格式在一次调用中附加它们时,使用此方法更加方便。
将条件行添加到邮件消息
El Shino 贡献了根据条件在邮件消息根据条件中添加行的特性:
// 写一个条件
$message->line('Your order has been canceled');
if ($this->amount > 0) {
$message->line("The refunded amount is {$this->amount}");
}
// 使用 lineIf
$message->line('Your order has been canceled')
->lineIf($this->amount > 0, "The refunded amount is {$this->amount}");
在文件系统中支持多种哈希算法
Douglas Medeiros 贡献了对文件系统中各种哈希算法的支持。 现在你可以指定 hash algo 作为可选的第二个参数:
File::hash($path)
// 196b0f14eba66e10fba74dbf9e99c22f => default md5
File::hash($path, 'sha256')
// 19c451aedfb24c338a9a2a5c31d553ed77e7cdefc655035f390176ac24066051
发行说明
你可以看到下面的新功能和更新的完整列表以及在 github 上看到 9.21.0 和 9.22.1 之间的差异 . 以下的发行说明直接来自 changelog:
v9.22.1
新增
- 给广播事件添加 unique 锁 (#43416)
修复
- 修复了 Windows 环境下的命令: Artisan serve (#43437)
v9.22.0
新增
- MailMessage 添加了附加文件数组的功能 (#43080)
- MailMessage 添加了条件行 (#43387)
Illuminate/Filesystem/Filesystem::hash()
添加了对多种哈希算法的支持 (#43407)
修复
- 修复 model:show 命令显示 enum 类型属性 (#43370)
- 修复 DynamoDB 锁定持续时间为 0 秒 (#43365)
- 修复了全局 locale 变量被 setLocale 覆盖的问题 (#43426)
变更内容
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
我怎么感觉更长了
artisan serve很多莫名其妙的bug,经常挂掉