Symfonyob娱乐下载 5.2新增功能:约束作为PHP属性
2020年10月20日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
PHP 8将在几周后发布,它将包括一个改变游戏规则的特性,称为属性(或注释)。在Syob娱乐下载mfony 5.2中,我们增加了对定义的支持作为属性的路由而且控制器参数作为属性.
约束似乎是下一个明显的步骤,这就是为什么ob娱乐下载Symfony 5.2可以将验证约束定义为PHP属性.过渡的设计是无缝的:
之前,通过PHP注释和Doctrine注释库使用注释:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/ / src /实体/ Author.php名称空间应用程序\实体;/ /……使用ob娱乐下载\组件\验证器\约束作为断言;类作者{/ * * *@Assert\Choice(* choices ={"虚构","非虚构"},* message = "选择一个有效的体裁。"*) */私人$类型;/ /……}
后,使用原生PHP 8属性:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/ / src /实体/ Author.php名称空间应用程序\实体;/ /……使用ob娱乐下载\组件\验证器\约束作为断言;类作者{#[断言\选择(选择:[“小说”,“非小说”)信息:“选择一种有效的体裁。”,)私人$类型;/ /……}
大多数约束都已更新,因此您可以将它们用作注释和属性。但是,以下复合约束不能与属性一起使用:
所有
AtLeastOneOf
集合
复合
(抽象)存在
(抽象)要求
可选
按顺序
原因是它们需要嵌套属性,而PHP还不支持该特性。我们还在讨论解决这个问题的最好办法是什么。考虑加入讨论问题# 38503.
发表在#生活在边缘
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now