【发布时间】:2010-06-07 15:36:24
【问题描述】:
关于用户输入验证的位置有几个讨论:
Should validation be done in Form objects, or the model?
Where do you do your validation? model, controller or view
这些讨论已经很老了,所以我想再次问这个问题,看看是否有人有任何新的意见。如果没有,我提前道歉。
如果您来自模型阵营的验证 - 模型是否意味着将数据(即 Active Record/Data Mapper)的 OOP 表示为“实体”(借用 DDD 术语) - 在这种情况下,我假设,希望所有模型类都继承通用的验证约束。或者这些规则可以只是模型中服务的一部分 - 即验证服务?例如,您可以考虑 Zend_Form 和它的验证类模型的一部分吗?域模型的概念似乎并不局限于实体,因此验证可能不一定需要局限于此实体。
您似乎需要在表单和“实体”之间来回处理大量可能多余的值和响应 - 在某些情况下,您可能不会保留从用户输入接收的数据,或者从用户输入接收数据完全没有。
【问题讨论】:
标签: php validation model domain-driven-design