我正在构建一个带有域层和映射器层的 PHP 应用程序,我需要决定在哪里验证用户输入。大多数验证将针对 Zend_Form 实例进行。(根据 Matthew Wierer O'Phinney 的教程,我将 Zend_Form 的验证方面视为属于模型)。
在我看来,这两个选项是:
- 在用户输入的领域层。例如,在
new user($_POST)
__construct() 方法将根据输入表单验证 $_POST - 在持久化数据时在映射器层中。例如,该
$userMapper->insert($user)
方法将根据输入表单验证 $user
我的感觉是验证应该在域层中处理,因为验证规则通常由业务规则驱动。话虽如此,我可能会遗漏一些东西,因为这是一个重大的设计决策,我希望您能提供意见。
除了模型验证之外,我在后端还有数据库约束,并且正在计划 JS 验证以改善用户体验!
感谢您的输入!!!