今天出现了一个非常有趣的主题,有两个观点。
使用Doctrine实体
是否有正常或经过验证的理论和/或观点?
答案 0 :(得分:0)
我认为没有“正常”/标准的方法可以解决这个问题 - 我想这取决于你的需求。我可以告诉你我的观点: 对我来说,数据验证应该尽快在setter上完成。通过这种方式,您不能拥有一个包含无效数据集的实体,并且当您要继续存在时,它将为您节省麻烦。
试着这样想:让我们假设你有一辆汽油车。你去加油站补充。你有两个泵:汽油和汽油。如果没有验证,你可以在那里放置任何类型的燃料,直到你打开发动机,什么都不会发生。但是当你这样做时,如果你输错了类型的燃料,那就太晚了。 Boooooooom!当然实体不会爆炸。;)
话虽如此,有时候无法对单个setter进行验证,因为它可能依赖于另一个属性(尚未设置)。像VATID这样的用户实体,其中必须提供属性user_type(private | company)才能检查并强制公司使用VATID。在这种情况下,你会做一些PrePersist/PreUpdate validation。