php - 在 Model/View/Controller 模型中,php最佳的验证位置?

  显示原文与译文双语对照的内容

我正在做一个PHP项目,它广泛地使用了MVC设计 Pattern 。 我想向表单添加验证,我想知道正确的验证位置是什么。

由于形式的生成方式,对 postback 数据的验证在视图组件中更简单且更重复。 是否可以接受视图验证响应数据,或者应该在控制器中实现,甚至模型?

有什么好处?

时间: 原作者:

如果你正在验证客户端( 。例如 Javascript验证) 上的数据,这绝对不够并且完全不安全,你应该在视图中实现它。

如果验证服务器端数据,并且验证不需要应用程序业务逻辑( 。例如 你没有检查用户在帐户中是否有足够的信用),那么应该在控制器中验证。

如果验证需要业务逻辑,则实现它 inside 模型并通过控制器调用它。

postback 验证不好,因为它放大了大量的压力和延迟,而且唯一的优点是程序员( 不被记录) 。

在大多数验证中都可以使用 正规表达式,它在PHP和JS上具有相同的语法。

正确的验证地点是英镑模型

因为你对数据进行验证,这是最有意义的,这就是模型所代表的。 在CRUD更新方面,模型应该总是以某种方式使用。

  • 如果要从视图更改数据,则应该检查验证是否正确。

  • 如果有控制器更改数据,那么应该检查验证。

  • 最后,如果你让模型本身改变数据,那么仍然应该有验证。

实现这种状态的唯一方法是将验证放入模型中。

在模型中执行验证后,由于性能和响应速度的提高,你应该尝试添加某种类型的客户端 side(JS),以便立即通知最终用户。

验证始终是关于数据。 为什么要验证数据? 所以你可以保持你储存的信息的完整性。 在模型级别进行验证使得数据总是正确的。 这是一个 neccesity 。 从那里,你可以在业务逻辑和客户端中添加额外的验证,使你的应用程序更加友好。

原作者:
...