Laravel 7.8发布

Laravel团队发布了带有新 方法takeWhile 和 takeUntil收集方法的v7.8.0  ,以及7.x分支中的所有最新功能,修复和更改。让我们看一下7.8中发布的一些新功能:

重定向器签名的路由

瑞安·钱德勒(Ryan Chandler)为从重定向器服务生成签名的路由提供了快捷方式:

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

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

// 和

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

这些新方法的用例相对来说是边缘情况,我建议在接触这些方法之前先阅读“拉取请求”中的讨论。

takeUntil和takeWhile收集方法

约瑟夫·席尔伯(Joseph Silber)贡献了 takeUntil 和 takeWhile收集方法,也使它们支持惰性收集。该文档已更新了有关这两种方法的详细信息。

首先,这里是使用该takeUntil 方法的一些示例 (直到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]

请查看拉取请求#32496和#32494了解实现细节,以及更新的收集文档以获取用法示例。

发行说明

虽然我们没有看完这篇文章中的所有新功能,但是您可以在下面看到新功能和更新的完整列表,以及GitHub上7.7.0和7.8.0之间的区别。最新的v7更新日志中提供了Laravel 7.x的完整发行说明:

v7.8.0

添加

  • 已添加 signedRoute() 和 temporarySignedRoute()方法到 Illuminate\Routing\Redirector (#32489)

  • 添加 takeUntil 和 takeWhile 收集方法(#32494,#32496)

  • 新增 (#32514)Illuminate\Container\ContextualBindingBuilder::giveTagged()

  • 添加的方法 withFragment ,并 withoutFragment 以 Illuminate\Http\RedirectResponse (11d6bef,0099591,42c67a1,a1e741a)

  • 添加了 exclude_without 验证规则(4083ae5)

固定的

  • 修复了没有名称空间的已编译路由操作(#32512)

  • 设置选择时重置选择绑定(#32531)

已变更

  • 添加了 未安装laravel / ui时的警告 (#32482)Illuminate/Support/Facades/Auth::routes()

  • 在(837921b)上向每个主机添加了身份验证 Illuminate\Redis\Connections\PhpRedisConnection::flushdb()

  • 注册opis密钥,以便它不与延迟的服务提供者绑定(Illuminate / Encryption / EncryptionServiceProvider.php)(62d8a07)

  • 将状态代码传递给计划完成(#32516)

  • 不敏感地检查route:list –columns选项是否区分大小写(#32521)

不推荐使用

  • 弃用 Illuminate\Support\Traits\EnumeratesValues::until(#32517)