Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:在域层或映射器层中验证?_Php_Validation_Zend Framework_Zend Form - Fatal编程技术网

PHP:在域层或映射器层中验证?

PHP:在域层或映射器层中验证?,php,validation,zend-framework,zend-form,Php,Validation,Zend Framework,Zend Form,我正在构建一个带有域层和映射器层的PHP应用程序,我需要决定在哪里验证用户输入。大多数验证将针对Zend_表单实例进行。(根据Matthew Wierer O'Phinney的教程,我认为Zend_表单的验证方面属于模型) 在我看来,这两种选择是: 在域层中,根据用户输入。例如,在新用户($\u POST)时,\uu construct()方法将根据输入表单验证$\u POST 在映射器层中保存数据。例如,$userMapper->insert($user)方法将根据输入表单验证$user 我的

我正在构建一个带有域层和映射器层的PHP应用程序,我需要决定在哪里验证用户输入。大多数验证将针对Zend_表单实例进行。(根据Matthew Wierer O'Phinney的教程,我认为Zend_表单的验证方面属于模型)

在我看来,这两种选择是:

  • 在域层中,根据用户输入。例如,在
    新用户($\u POST)
    时,\uu construct()方法将根据输入表单验证$\u POST
  • 在映射器层中保存数据。例如,
    $userMapper->insert($user)
    方法将根据输入表单验证$user
  • 我的感觉是验证应该在域层处理,因为验证规则通常由业务规则驱动。话虽如此,我可能会错过一些东西,因为这是一个重大的设计决策,我希望您的意见

    除了模型验证之外,我在后端还有数据库约束,我正在计划JS验证以改善用户体验


    谢谢你的意见

    我不认为在域模型中进行验证有任何错误,但是您可能会对自己造成伤害。
    如果您开始不得不构建更多的域模型,您可能会发现自己一遍又一遍地重写相同的验证代码。让服务模型提供验证可能对您有利。
    这样,当您添加域模型时,您只需通过验证服务传递数据,就可以在一个位置为所有模型添加和删除验证程序。您还可能发现ZF已经提供的一些验证器已经足够了


    只是我的意见。。。祝你好运

    我认为在域模型中进行一些验证没有任何错误,但是你可能会对自己造成伤害。
    如果您开始不得不构建更多的域模型,您可能会发现自己一遍又一遍地重写相同的验证代码。让服务模型提供验证可能对您有利。
    这样,当您添加域模型时,您只需通过验证服务传递数据,就可以在一个位置为所有模型添加和删除验证程序。您还可能发现ZF已经提供的一些验证器已经足够了


    只是我的意见。。。祝您好运

    我在模型中验证,最近使用set方法验证模型中的输入验证,最近使用set方法验证输入