Laravel 9.22版本发布

2023-06-01 00:00:00 laravel 版本 发布

Laravel 团队发布了 9.22,其中包含重新设计的 artisan serve 命令、流畅的文件验证规则构建器等。

让我们来看看最新的 Laravel 9 版本中的所有优点:


Fluent 文件验证规则

Luke Downing贡献了一个 File 验证规则对象,它提供了一个像Password验证规则一样的流畅接口:

// Before
$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)],
]);
 
// After
$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 规则构建器验证文件的详细信息。

https://laravel.com/docs/9.x/validation#validating-files

改进的Artisan serve command

在新的Look for Artisan之后,Nuno Maduro贡献了一个改进的artisan serve命令:

1.png

查看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贡献了有条件地在邮件消息中添加一行的能力:

// With a conditional
$message->line('Your order has been canceled');
if ($this->amount > 0) {
    $message->line("The refunded amount is {$this->amount}");
}
 
// Using lineIf
$message->line('Your order has been canceled')
        ->lineIf($this->amount > 0, "The refunded amount is {$this->amount}");


支持文件系统中的多种哈希算法

Douglas Medeiros为文件系统中的各种哈希算法提供了支持。您现在可以将哈希算法指定为可选的第二个参数:

File::hash($path)
// 196b0f14eba66e10fba74dbf9e99c22f => default md5
 
File::hash($path, 'sha256')
// 19c451aedfb24c338a9a2a5c31d553ed77e7cdefc655035f390176ac24066051

哈希算法:

https://www.php.net/manual/en/function.hash-algos.php


发行说明

您可以在下面查看新功能和更新的完整列表以及GitHub 上9.21.0 和 9.22.1之间的差异。以下发行说明直接来自变更日志:

https://github.com/laravel/framework/compare/v9.21.0...v9.22.0
https://github.com/laravel/framework/blob/ae76bf60795117e28e7beb64346bc2011e195c23/CHANGELOG.md#v9221---2022-07-26


v9.22.1

添加
为广播事件添加了唯一锁定 ( #43416 )

修复
修复了 Windows 上的 Artisan serve 命令 ( #43437 )


v9.22.0

添加
添加了在 MailMessage 中附加文件数组的功能 ( #43080 )
向 MailMessage 添加了条件行 ( #43387 )
Illuminate/Filesystem/Filesystem::hash()向( #43407 )添加对多种哈希算法的支持

修复
修复模型:当属性默认值为枚举时显示 ( #43370 )
修复了持续时间为 0 秒的 DynamoDB 锁定 ( #43365 )
修复了覆盖全局语言环境(#43426)

改变了
控制台输出运行时的毫秒数 ( #43400 )
改进了服务工匠命令 ( #43375 )

转:

https://laravel-news.com/laravel-9-22-0

相关文章