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 服务命令:

New artisan serve comparison

查看 Pull Request #43375 了解更多屏幕截图和有关这些更改的详细信息。

在 MailMessage 中附加一组文件

Delowar HossainTim 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)

变更内容

  • 控制台输出运行时的毫秒数 (#43400)
  • 改进了服务 Artisan 命令 (#43375)
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-9-22-0

译文地址:https://learnku.com/laravel/t/70185

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

流畅的文件验证规

我怎么感觉更长了

1年前 评论

artisan serve很多莫名其妙的bug,经常挂掉

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!