我正在构建一个带有域层和映射器层的PHP应用程序,我需要决定验证用户输入的位置。大多数验证都是针对Zend_Form实例完成的。 (根据Matthew Wierer O'Phinney的教程,我将Zend_Form的验证方面视为属于该模型)。
在我看来,这两个选项是:
new user($_POST)
时,__ construct()方法将针对输入表单验证$ _POST $userMapper->insert($user)
方法将根据输入表单验证$ user 我的感觉是应该在域层中处理验证,因为验证规则通常由业务规则驱动。话虽如此,我可能会遗漏一些东西,因为这是一个重大的设计决定,我希望你的意见。
除了模型验证之外,我在后端有数据库约束,并且正在计划JS验证以改善用户体验!
感谢您的投入!!!
答案 0 :(得分:1)
我认为在域模型中进行一些验证没有任何问题,但是你可能会对自己造成伤害。
如果您开始构建大量的域模型,您可能会发现自己一遍又一遍地重写相同的验证代码。让服务模型提供验证可能对您有利
这样,当您添加域模型时,您只需通过验证服务传递数据,您就可以在一个位置为所有模型添加和删除验证器。您可能还会发现ZF已经提供的一些验证器就足够了。
只是我的意见......祝你好运