我应该在类中使用validation.yml或Assertions吗?

时间:2013-06-05 20:21:03

标签: php forms validation symfony

我对最佳做法有疑问。我注意到,对于表单验证,Symfony允许我使用Acme \ Bundle \ Resource \ config \ validation.yml,如下所示验证:

Acme\Bundle\Entity\School
    properties:
       zipCode:
            - MinLength: 5

或者我也可以在类中使用Assertions。所以在Acme \ Bundle \ Entity \ School.php中它看起来像这样:

...
class School
{
 ...
 /**
  * @Assert\MinLength(limit="5", message="Zipcode too short")
  */
 protected $zipCode;
 ...
}

哪一个更好的做法?或者只是偏好?

2 个答案:

答案 0 :(得分:2)

这完全取决于你,这就是他们提供许多不同方式的原因。

不要忘记单个捆绑包只能使用一种类型。

答案 1 :(得分:2)

虽然Jessica认为两种方法都是最佳实践是正确的,但我发现使用@Assert更方便,因为它将所有与实体相关的数据保存在实体中。

由于我不需要查找第二个文件(这是一项令人生畏的任务!),以后我需要更改或查阅该信息时会更容易。

但是,在YML中,它比注释更清晰,更容易阅读。