Laravel团队发布了v7.8.0,其中包括新的takeWhile和takeUntil收集方法,以及7.x分支中的所有最新功能、修复和更改。让我们看看7.8中发布的一些新功能:
重定向程序签名的路由
Ryan Chandler提供了从重定向程序服务生成签名路由的快捷方法:
// 示例:
redirect()->to(URL::signedRoute(...));
// Using `signedRoute` and `temporarySignedRoute`
redirect()->signedRoute($route, $parameters, $expiration, $status, $headers);
// 以及
redirect()->temporarySignedRoute($route, $expiration, $parameters, $status, $headers);
takeUntil和takeWhile收集方法
Joseph Silber提供了takeUntil和takeWhile收集方法,也使它们支持懒惰的收集。文档更新了关于这两种方法的详细信息。
首先,下面是一些使用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]
查看Pull request #32496 和 #32494 以了解实现细节,并查看更新的 collection 文档 以了解用法示例。
发行说明
虽然我们没有查看本文中的所有新功能,但您可以看到下面的新功能和更新的完整列表,以及GitHub上 7.7.0 和 7.8.0 之间的差异。Laravel 7.x的完整发行说明可在最新的v7变更日志中找到:
7.8.0版
新增
- 新增
signedRoute()
andtemporarySignedRoute()
方法 toIlluminate\Routing\Redirector
(#32489) - 新增
takeUntil
和takeWhile
collection 方法 (#32494, #32496) - 新增
Illuminate\Container\ContextualBindingBuilder::giveTagged()
(#32514) - 新增方法
withFragment
和withoutFragment
至Illuminate\Http\RedirectResponse
(11d6bef, 0099591, 42c67a1, a1e741a) - 新增
exclude_without
验证规则(4083ae5)
修复
修复了没有命名空间的已编译路由操作(#32512)
设置select时重置select绑定( #32531)
修改
在未安装laravel/ui时在 Illuminate/Support/Facades/Auth::routes() 中添加了警告(#32482)
在 Illuminate\Redis\Connections\PhpRedisConnection::flushdb()
(837921b) 上为每个主节点添加了身份验证
注册opis密钥,使其不绑定到延迟服务提供程序 (Illuminate/Encryption/EncryptionServiceProvider.php) (62d8a07)
将状态代码传递到计划完成 (#32516)
检查 route:list –columns 列选项不区分大小写 (#32521)
弃用
Illuminate\Support\Traits\EnumeratesValues::until
(#32517)