新在Symfoob娱乐下载ny 6.1:改进相关类型
uid控制器解析器
ob娱乐下载Symfony提供了参数值解析器将某些参数的控制器方法转换成其他对象。这就是你可以例如当前请求对象只是通过输入任何参数请求
类。
在Syob娱乐下载mfony 6.1我们添加一个新的解析器将UID值转换为UID对象。例如,在之前的Symfony版本你需要这样做一个Uob娱乐下载UID v4从控制器参数:
1 2 3 4 5 6
#[路径(路径:/令牌/{牌}))公共函数someControllerMethod(字符串美元令牌):响应{美元令牌= UuidV4::fromRfc4122 (美元令牌);/ /……}
在Syob娱乐下载mfony 6.1你可以做相同的类型提示控制器参数类型的对象你想接收:
1 2 3 4 5 6 7
使用ob娱乐下载\组件\Uid\UuidV4;#[路径(路径:/令牌/{牌}))公共函数someControllerMethod(UuidV4美元令牌):响应{/ /……}
支持构造函数提升属性的突变
从PHP 8.0,您可以使用构造函数特性升级在构造函数中声明属性直接签名。不过,您可以使用PHPdoc注释改变属性的类型。在Syob娱乐下载mfony 6.1我们已经改善了PropertyInfo组件考虑到这些PHPdoc修改。
在下面的例子中,的类型someProperty美元
将报告为字符串
而不是混合
:
1 2 3 4 5 6 7 8 9
类SomeClass{/ * * *@param字符串$ someProperty * /公共函数__construct(私人混合美元someProperty){}}
支持枚举控制器解析器
另一个控制器参数解析器中添加Symfony 6.1允许将参数转换为枚举支持情况。ob娱乐下载例如著名的西装
枚举的例子:
1 2 3 4 5 6 7 8 9
名称空间应用程序\模型;enum套装:字符串{情况下心=“H”;情况下钻石=' D ';情况下俱乐部=“C”;情况下黑桃=“年代”;}
在Syob娱乐下载mfony 6.1可以使用西装
作为控制器的类型参数。如果路由参数匹配任何的枚举值,Symfony会注入enum的情况。ob娱乐下载否则,它将返回一个HTTP 404错误:
1 2 3 4 5 6 7 8
类CardController{#(路线(/卡/{西装}))公共函数列表(套装美元西装):响应{/ /……}}
PHPStan Pseudo-Types支持
由于流行的静态分析程序等PHPStan,越来越多的开发人员使用pseudo-types描述参数和返回值更加精确。
例如,而不是字符串
您可以使用non-empty-string
;而不是int
您可以使用positiveInt
;而不是int |浮动
您可以使用数量
等。在Symfonyob娱乐下载 6.1我们已经改善了PropertyInfo正确推断出正确的PHP类型的一个变量与这些pseudo-types描述:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
类SomeClass{/ * *@varnegative-int * /公共美元property1;/ * *@varnon-empty-array * /公共美元property2;/ * *@varnon-empty-list * /公共美元property3;/ * *@varnon-empty-lowercase-string * /公共美元property4;}
在Syob娱乐下载mfony 6.1中,这些属性将正确的PHP类型推断整数
,数组
,数组
和字符串
分别。
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
我认为你的意思请求类。
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now