Laravel v7.8 发布

Laravel

Laravel 团队发布了 v7.8.0 ,包括新的 takeWhile 和 takeUntil 集合函数,以及在 7.x 分支上的所有最新特性、修复及更新。让我们来看一下 7.8 版本中发布的一些新特性吧:

重定向签名路由

Ryan Chandler 贡献的生成重定向签名路由的快捷方法:

// 例子
redirect()->to(URL::signedRoute(...));

// 使用 `signedRoute`
redirect()->signedRoute($route, $parameters, $expiration, $status, $headers);

//使用 `temporarySignedRoute`

redirect()->temporarySignedRoute($route, $expiration, $parameters, $status, $headers);

使用案例中的场景是比较基本的用法,在使用之前,建议读者阅读这个 Pull Request 了解详细用法。

takeUntil 和 takeWhile 集合函数

Joseph Silber 贡献了 takeUntil 和 takeWhile 集合函数,且均支持 LazyCollection 功能。文档中已更新了关于这两个方法的详细信息。

首先,看几个使用 takeUntil 函数的示例(该版本中 until 是 takeUntil 的别名):

$collection = collect([1, 2, 3, 4]);

$subset = $collection->takeUntil(function ($item) {
    return $item >= 3;
});

$subset->all();
// [1, 2]

// 普通传参方式
$subset = $collection->until(3);
$subset->all();
// [1, 2]

然后,这是一个 takeWhile 的示例:

$collection = collect([1, 2, 3, 4]);

$subset = $collection->takeWhile(function ($item) {
    return $item < 3;
});

$subset->all();
// [1, 2]

你可以通过以下 PR #32496 和 #32494 来了解实现细节,以及 集合文档 中的用法案例。

发行说明

想要了解更详细的更新以及两者之间的区别,你可以查看一下文档 7.7.0 and 7.8.0 。 想要阅读完整的 Laravel 7.x 发行说明,看这里  v7 changelog:

v7.8.0

新增

  • Illuminate\Routing\Redirector 新增 signedRoute() 和 temporarySignedRoute() 方法   (#32489)
  • 新增 takeUntil 和 takeWhile 集合方法 (#32494#32496)
  • 新增 Illuminate\Container\ContextualBindingBuilder::giveTagged() (#32514)
  • Illuminate\Http\RedirectResponse  新增 withFragment 和 withoutFragment 方法 (11d6bef009959142c67a1a1e741a)
  • 新增 exclude_without 路由验证 (4083ae5)

修复

  • 修复已生成的路由找不到正确的动作问题 (#32512)
  • 在设置 select 时,重置 select 绑定,修复了以下问题 (#32531)

变动

  • 没有安装 laravel/ui 时给 Illuminate/Support/Facades/Auth::routes() 添加警告 (#32482)
  • 在 Illuminate\Redis\Connections\PhpRedisConnection::flushdb() 上给每个 master 添加认证 (837921b)
  • 注册 opis 键使其不绑定于延迟服务提供者 (Illuminate/Encryption/EncryptionServiceProvider.php) (62d8a07)
  • 给计划完成传递状态码 (#32516)
  • 检查 route:list 列大小写不敏感选项 (#32521)

废弃

  • 废弃 Illuminate\Support\Traits\EnumeratesValues::until (#32517)
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

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

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

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 4

这版本号坐火箭啊!

3年前 评论
long2ge

不知道 opis 如何翻译,望有译者完善翻译。

3年前 评论
long2ge (作者) 3年前
ddingchen 3年前
long2ge (作者) 3年前
ddingchen 3年前

这版本要起飞嘛这是 这才几天 :flushed:

3年前 评论

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