Laravel 8.73 发布啦,看看都有哪些更新?
时间:2021-11-30 15:24
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
撤销
- 撤销 使用父级解决
SortedMiddleware
中的中间件优先级 (#39706)
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)
原文地址:https://laravel-news.com/laravel-8-73-0
译文地址:https://learnku.com/laravel/t/6
相关推荐:最新的五个Laravel视频教程3183
以上就是Laravel 8.73 发布啦,看看都有哪些更新?的详细内容,更多请关注gxlsystem.com其它相关文章!