问题很简单。 我应该在哪里把形式验证过程中的MVC设计模式(Zend公司,交响乐团,CakePHP的,笨)。 我问这个问题,因为我有我自己的框架。 但我不能决定我应该在哪里处理表单验证。 例如,如果在控制器语句但是这使得控制器“胖”我可以写,或我可以添加在模型函数验证语句(在用户::寄存器(,,))。 当然,这也不是很复杂的事情,但我的目的是了解他们是如何在企业级应用程序做。
Answer 1:
如果你考虑在MVC模型作为我们在.NET世界呼叫的ViewModels(我相信被称为别处演示模型),而不是域模型,模型将添加验证/认证的好地方。
这将允许你重用验证逻辑,方便您随时随地重用模型,它是有道理的,因为该模型将与数据一起封装验证逻辑。 这听起来像高凝聚力给我。
作为一个全面的检查,ASP.NET MVC框架似乎在这方向前进为好。 由于这个问题被标记“PHP”我不知道这个信息的最后一块强化或削弱论点。
Answer 2:
验证是输入控制。 MVC表示模型视图控制器,所以验证应该是在一个控制器。
像isInt(),ISSTR(),isEmailAddress,isFloat()一般验证等等等等可以/应当放置在碱控制器。 然后你就可以拥有指定型号(映射到数据库)子控制器。 那些子控制器然后从基本控制器延伸。
Answer 3:
有多个地方的验证可能发生。
首先,客户端与服务器端:它发送位了线之前是经常一个很好的做法,以做到在客户端预验证(例如“只允许数字!”)。 服务器端验证始终是强制性的,因为安全/数据完整性的要求。
前端与模型的要求:一种特殊形式可能不知道的相关数据对象模型的要求(例如,如果有一个业务逻辑规则,即在某一特定领域的3值应不存在,如果相关的记录数小于5) - 唯才知道是模型的地方。
文章来源: Where is the best place to verify form data?