OOP最佳实践 - 验证属性设置器中的用户输入?

时间:2015-10-27 22:35:32

标签: oop

我是OOP(和PHP)的新手,我正在努力学习最佳实践或至少是验证用户输入的常用方法。

目前我正在我的对象的属性设置器中执行此操作,虽然我理解这是业务逻辑的理想位置,但是将输入清理代码放在那里感觉有点奇怪(例如剥离所有非数字字符)来自ID字段)。

虽然我可以将这种类型的输入清理放到前端脚本中,但是清理代码可以特定于该属性,所以这是我的反驳,它应该在对象设置器中吗?

困惑......请寻求一些建议。

1 个答案:

答案 0 :(得分:1)

'验证' setter的参数,在无效参数上抛出异常听起来是合理的。

'消毒'或者以其他方式符合方法前提条件应由来电者负责。

改变用户输入通常不是一个好主意。让用户知道他们必须输入什么并告知他们错误是一种更务实的方法。

验证通常需要在多个地方进行,验证库可以为您提供重用验证逻辑的模型。