Symfonyob娱乐下载 2.4新增功能:更好的回调约束
2013年10月9日·发表的法比安效力
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
有时候,我们把事情做得比它们应该的更复杂;的回调
constraint就是这样一个例子,在Symfony 2.4中使用它要简单得多,感觉更自然,同ob娱乐下载时也更强大。
的回调
Constraint是定义自定义验证规则的好方法,而不需要创建自定义约束和验证器类。您只需要创建一个或多个方法来执行验证并生成一些违规。但在2.4之前,约束需要附加到类本身,而不是验证方法,导致一些冗长的配置(在所有配置格式中):
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22
使用ob娱乐下载\组件\验证器\ExecutionContextInterface;/ * * *@Assert\Callback(methods={* {"Acme\BlogBundle\MyStaticValidatorClass", "isAuthorValid"} *}) */类作者{/ /……公共函数isAuthorValid(ExecutionContextInterface$上下文){//你有一个“假名字”数组$fakeNames=数组();//检查该名称是否为假名称如果(in_array ($这->getFirstName (),$fakeNames)) {$上下文->addViolationAt (“firstname”,“这个名字听起来完全是假的!”,数组(),零);}}}
从Symfoob娱乐下载ny 2.4开始,您可以只注释方法本身(XML或YAML配置格式也更容易编写):
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20
使用ob娱乐下载\组件\验证器\ExecutionContextInterface;类作者{/ /……/ * * *@Assert\调* /公共函数isAuthorValid(ExecutionContextInterface$上下文){//你有一个“假名字”数组$fakeNames=数组();//检查该名称是否为假名称如果(in_array ($这->getFirstName (),$fakeNames)) {$上下文->addViolationAt (“firstname”,“这个名字听起来完全是假的!”,数组(),零);}}}
你现在也可以使用一个外部方法来验证你的对象,在这种情况下,回调函数会将对象作为第一个参数进行验证:
1 2 3 4 5 6 7 8
使用ob娱乐下载\组件\验证器\约束作为断言;/ * * *@Assert\Callback({"Vendor\Package\Validator", "validate"}) */类作者{}
的回调的约束欧宝官网下载app文档页为您提供了升级现有代码和利用新功能所需的所有信息。
当然,旧的方法仍然可以保持向后兼容性,但是谁不想升级到新的方法呢?
发表在#生活在边缘
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
如果你可以对方法进行注释它应该被命名为validate
在最后一部分应该更清楚如果
Vendor\Package\Validator被转换成
Acme \ BlogBundle \ MyStaticValidatorClass
因为你早就介绍过了
只是一些帮助澄清它,因为它似乎不清楚,因为它是现在