Laravel 8.73 发布

Laravel

Laravel 团队发布了 8.73,支持字符串复数器中的 Countable 对象,允许使用闭包来确定缓存 TTL、lazyByIdDesc() 查询构建器方法以及 v8.x 分支中的最新更改。

这篇文章包含了过去几天更新的一些版本,包括在 8.73.1 中的恢复,因此请务必更新到最新的 8.x 版本:

将 .phar 添加到被阻止的 PHP 扩展名(8.73)

Stephen Rees-Carter 在文件上传过程中为阻止 PHP 扩展名添加了.phar 扩展名:

默认情况下,Debian 支持执行 .phar 文件以及 .php 和 .phtml 文件,并且应该包含在阻止列表中。

见:salsa.debian.org/php-team/php/-/bl...

这也应该被移植到所有当前支持的 Laravel 版本中。

允许在缓存 remember() 方法中将闭包作为 TTL 传递 (8.73)

Gerard Nesta 贡献了在 Cache::remember() 方法中将 Closure 作为 TTL 传递的方法:

 Cache::remember(
    'count_events_hosted',
    // 现在你可以通过一个闭包来计算 TTL
    function () use ($user) {
        // 当最近的事件结束时过期
        $closestEventEndsAt = $user->hostedEvents()
            ->select('ends_at')
            ->where('starts_at', '>', Date::now())
            ->orderBy('ends_at')
            ->limit(1)
            ->value('ends_at');

        return $closestEventEndsAt ?
            Date::parse($closestEventEndsAt) :
            60;
    },
    function () use ($user) {
        return $user->hostedEvents()->ended()->count();
    }
);

按降序实现 lazyByIdDesc (8.73)

Moshe Brodsky 贡献了一个 lazyByIdDesc() 方法,该方法通过按降序比较 ID 来对查询结果进行分块,从而延迟查询:

$query->lazyByIdDesc();

在处理大量数据时,您希望首先处理“较新”对象,这会很有用。

PasswordReset 方法用于重置 URL (8.72)

Oliver Kaufmann 的贡献将重置 URL 的生成移动到一个单独的方法中,用于PasswordReset的通知。与VerifyEmail类似,允许用户重写默认的 URL 生成逻辑,而无需覆盖toMail()方法。

为多元化器添加可计数支持 (8.72)

Michael Dyrynda 增加了Str::plural() 方法用于可计数值. 你可以传入任何通过PHP的is_countable()方法检测的内容,此方法实现了Countable接口,你可以将检测项作为第二个参数:

// Arrays
$this->assertSame('users', Str::plural('user', []));
$this->assertSame('user', Str::plural('user', ['one']));
$this->assertSame('users', Str::plural('user', ['one', 'two']));

// Collections
$this->assertSame('users', Str::plural('user', collect()));
$this->assertSame('user', Str::plural('user', collect(['one'])));
$this->assertSame('users', Str::plural('user', collect(['one', 'two'])));

发行说明

您可以在下方查看新功能和更新的完整列表以及 GitHub 上的 8.71.0 和 8.73.1 之间的差异。以下发行说明直接来自 changelog

v8.73.1

撤销

v8.73.0

添加

  • 在验证器中添加 .phar 以阻止 PHP 扩展(#39666
  • 允许在 Cache remember() 方法中将闭包作为 ttl 传递 (#39678)
  • 向dependentRules 属性添加了禁止验证规则 (#39677)
  • 按降序实现 lazyById (#39646)

修复

  • 固定 Illuminate/Auth/Notifications/ResetPassword::toMail() (969f101)
  • 修正了 assertSoftDeleted & assertNotSoftDeleted (#39673)

v8.72.0

补充

  • 在 PasswortReset 中添加额外的方法来重置 URL 以匹配 VerifyEmail 的结构 (#39652)
  • 添加对可数表的支持 Illuminate/Support/Pluralizer::plural() (#39641)
  • 允许用户为 migrate 数据迁移指定选项 (#39637)

修复

  • 不为 null 时,仅将 $值强制转换 Illuminate/Database/Query/Builder::limit() (#39644)

改变

  • 使用父节点解析中间件优先级 SortedMiddleware (#39647)
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-8-73-0

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

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2

Fix能不能不要直译,想了一会才发现

2年前 评论

更新真快啊

2年前 评论

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