Laravel 团队发布了 v13.16.0 版本,其中包含一项新功能。
artisan dev
用于运行开发流程的命令、枚举感知请求助手、
withCookies()
对所有响应采用方法,以及用于并行测试的基于数组的维护模式驱动程序。
php artisan dev同时运行服务器、队列、日志和 Vite 的命令whenFilledEnum()请求中用于类型化枚举处理的方法withCookies()从重定向提升到所有响应类型- 一个
array用于并行测试的维护模式驱动程序
什么是新的
这
artisan dev
命令
该版本新增了
php artisan dev
该命令可并发运行您的开发进程(服务器、队列工作进程、日志跟踪和 Vite)。默认情况下,其行为与现有进程的行为一致。
composer dev
脚本,但它会将配置移到您的应用程序代码中,而不是
composer.json
。
命令通过以下方式注册:
DevCommands
类,通常来自服务提供商。您可以将 Artisan 命令或任意 shell 命令添加到该集合中:
使用
照亮\基础\控制台\开发者命令
;开发命令
::
工匠
(
'混响:开始'
(英文):开发命令
::
登记
(
'stripe listen --forward-to'
。
配置
(
'app.url'
));
第二个参数(可选)用于指定进程名称;否则,名称为第一个空格之前的第一个段落。您还可以为每个进程分配颜色:
开发命令
::
工匠
(
'混响:开始'
,
混响
)
->
橙子
();开发命令
::
登记
(
'stripe listen --forward-to'
。
配置
(
'app.url'
))
->
绿色的
();
DevCommands
阻止包裹进入
vendor
阻止目录自动注册命令。软件包仍然可以公开一个辅助函数,用于从您自己的代码注册命令。该 PR 还添加了一个
NodePackageManager
辅助工具,可根据锁定文件中存在的包管理器(npm、yarn、pnpm 或 bun)检测包管理器,以便通用命令能够解析到正确的运行器。参见
#60412
。
注意:升级到
v13.16.1
,它修复了注册问题
artisan dev
命令。
whenFilledEnum()
请求方法
这
InteractsWithData
特性获得
whenFilledEnum()
该方法在调用回调函数之前,将请求值转换为后端枚举类型。以前这意味着调用
whenFilled()
, 然后
tryFrom()
然后手动进行空值检查:
$请求
->
whenFilledEnum
(
'地位'
,
地位
::班级
,
功能
(
地位
$status)
使用
($查询)
:
空白
{$查询
->
在哪里
(
'地位'
,$status);});
回调函数仅在键已填充、给定类是受支持的枚举类型,且值通过某种方式强制转换为有效类型时运行。
tryFrom()
无效值将被跳过而不抛出异常。当主回调函数未运行时,会运行一个可选的默认回调函数:
$请求
->
whenFilledEnum
(
'地位'
,
地位
::班级
,
功能
(
地位
$status)
使用
($查询)
:
空白
{$查询
->
在哪里
(
'地位'
,$status);},
功能
()
使用
($查询)
:
空白
{$查询
->
在哪里
(
'地位'
,
地位
::
积极的
(英文):});
看 #60486 。
withCookies()
所有回复
这
withCookies()
方法从
RedirectResponse
到
ResponseTrait
因此,您可以将多个 cookie 附加到任何响应类型,包括
JsonResponse
并在一次调用中给出标准响应,而不是多次调用。
withCookie()
:
返回
回复
()
->
json
(数据)
->
带有Cookies
([$cookieA, $cookieB, $cookieC]);
这种改变是累加的,不会破坏原有结构。参见 #60503 。
array
维护模式驱动程序
一种新的基于数组的维护模式驱动程序加入了现有的文件和缓存驱动程序行列。它旨在用于并行测试,其中文件驱动程序和
Cache
外观模拟可能会干扰调用测试的操作。
php artisan up
和
down
。 看
#60489
。
枚举
broadcastAs()
广播事件现在可以从返回枚举值。
broadcastAs()
用于事件名称。与类型化的 SDK 生成器配合使用,可确保发送端和接收端的事件名称保持一致,与事件名称的编写方式相匹配。
#[Queue()]
属性已支持枚举。请参阅
#60483
。
JSON 模式
anyOf
更安全的反序列化
这
JsonSchema
组件添加
anyOf
支持,并且反序列化器现在受到保护,防止无限制操作。
$ref
扩展以防止失控递归。参见
#60509
和
#60517
。
其他修复和改进
- 修复了以其他用户身份运行计划命令时的 shell 引用问题( #60469 )
- 允许
RouteParameter使用属性参数名称( #60465 ) - 固定的
Batchable::batching对于已完成的批次( #60511 ) - 为特性上的队列属性添加了支持( #60519 )
- 强化HTTP客户端请求和伪造响应序列化( #60522 )
- 改进了模型作用域、连接回调和回调传递辅助函数的返回类型( #60481 , #60484 , #60500 , #60513 )
参考







