Laravel v12.53.0 引入了
Cache::funnel()
对于任何支持锁的缓存驱动程序支持的并发限制,为事件分发和广播添加了命名参数支持,并使用预计算的 tsvector 列支持扩展了 PostgreSQL 全文搜索。
主要亮点包括:
Cache::funnel()针对缓存支持的并发限制- 事件分发和广播中的命名参数
whereFullText预计算 tsvector 列的 vector 选项(PostgreSQL)buildMorphMapFromModels()接受数组键php artisan down可以就地刷新维护模式选项。- 日程组上的事件宏
什么是新的
Cache::funnel()
并发限制
Cache::funnel()
为所有支持原子锁的缓存驱动程序(包括数组、文件、数据库和 Redis 驱动程序)带来并发限制功能。此前,Laravel 中的并发限制依赖于……
Redis::funnel()
这需要建立 Redis 连接。这种新的外观方法适用于所有驱动程序,并使用缓存层中已有的相同锁原语。
缓存
::
漏斗
(
“支付处理”
)
->
限制
(
3
)
->
释放后
(
60
)
->
然后
(
fn
() =>
处理付款
(),
fn
() =>
“目前已满负荷运转”(英文):
limit(int $slots)— 允许的最大并发操作数releaseAfter(int $seconds)— 自动释放前需要按住锁定键多长时间block(int $timeout)— 等待多久才放弃?then(callable $success, callable $failure)— 当槽位被获取时运行成功回调函数,当槽位被阻塞时运行失败回调函数。
如果驱动程序不支持锁,则
BadMethodCallException
抛出异常。当阻塞超时到期而没有失败回调时,会抛出异常。
LimiterTimeoutException
被提起。
拉取请求: #58439
事件分发和广播中的命名参数
这
Dispatchable
trait 现在支持在调用时使用命名参数
dispatch()
和
broadcast()
在事件类上。之前使用的特性
func_get_args()
内部实现会丢弃参数名称。切换到可变参数语法后,命名参数就可以传递给事件构造函数。
// 之前 — 仅位置参数事件
(
新的
用户订阅
($用户,$套餐,$元数据));// 之后——命名参数现在可以正常工作了用户订阅
::
派遣
(
用户
:$user,
计划
:$plan,
元数据
:[
'来源'
=>
'查看'
],(英文):
这与作业调度处理命名参数的方式一致。现有的位置参数调用无需更改即可继续正常工作。
拉取请求: #58913
使用预计算的 tsvector 列进行 PostgreSQL 全文搜索
whereFullText()
获得
vector
PostgreSQL 的一个选项,可以将列视为预先计算的 tsvector,而不是将其包装在 tsvector 中。
to_tsvector()
每次查询都会如此。当您维护一个专用查询时,这非常有用。
tsvector
列(通常使用 GIN 建立索引)以避免在查询时重新计算向量的开销。
// 不使用 vector 选项 — 将列包装在 to_tsvector() 中$查询
->
whereFullText
(
'身体'
, $term, [
'语言'
=>
'英语'
]);// 使用向量选项 — 直接使用该列$查询
->
whereFullText
(
'搜索向量'
, $term, [
'向量'
=>
真的
,
'语言'
=>
'英语'
,
'模式'
=>
“网络搜索”
,]);// 也适用于多个 tsvector 列$查询
->
whereFullText
([
'tsv_title'
,
'tsv_body'
], $term, [
'向量'
=>
真的
]);
拉取请求: #58893
buildMorphMapFromModels()
接受数组键
buildMorphMapFromModels()
现在,在从模型类构建变形映射时,接受任何数组键类型——字符串或整数。此前,该参数仅接受列表式整数键数组,这导致无法使用自定义字符串别名:
// 自定义字符串别名现在可以正常工作了关系
::
从模型构建形态映射
([
'邮政'
=>
邮政
::班级
,
'视频'
=>
视频
::班级
,]);
拉取请求: #58891
维护模式
down
刷新现有选项
php artisan down
现在,即使应用程序已处于维护模式,也可以重新运行该命令来更新选项(例如密钥、消息或重试值),而无需先重新启动网站。以前,您必须运行该命令。
php artisan up
在更改维护模式设置之前。
# 将网站置于维护模式php
工匠
向下
--秘密=
“我的秘密”# 更新密钥,无需重启网站php
工匠
向下
--秘密=
“新秘密”
拉取请求: #58918
日程组上的事件宏
计划命令
Event
现在可以将宏应用于计划组,允许将共享行为注册一次,并将其应用于组中的所有命令,而不是单独应用于每个条目。
拉取请求: #58926
错误修复和性能改进
数据库:
队列和作业:
- 修复队列作业中的模型序列化问题 #58939 )
- 使固定
RetryCommand不适用于 SQS FIFO 队列( #58936 ) - 确保
oldest_pending显示正确queue:monitor( #58952 )
HTTP 和缓存:
测试:
- 显示所有不匹配的值
assertSessionHasAll失败输出( #58946 )
邮件:
- 更改文本对齐方式
left到start为了更好地支持 RTL 语言( #58935 )




