是否有必要验证进入结果类的数据?

时间:2011-04-26 14:50:29

标签: php oop design-patterns

在我的库中,我有一个类进行一些处理,这个process()方法的返回是Result类。

例如,

class Result {
    protected $data1;
    protected $data2;
    public function __construct($data1, $data2) {
        $this->data1 = $data1;
        $this->data2 = $data2;
    }
    // Some getters that use $data1 and $data2
}

Result课程上有一些getter,可以处理$data1$data2的回复。

现在,要使这些工作$data1$data2的getter需要具有某种格式,例如字符串,多维数组等。

我的处理类将始终正确地实例化Result,但我是否还应该验证进入Result的数据

如果注入了无效数据并且运行了特定方法,则会发生PHP错误,这显然很糟糕。但是只有当某人用错误的数据物理实例化Result类时才会发生这种情况。

我只是不想添加验证,因此当我不相信它实际需要时会增加开销。

思想?

2 个答案:

答案 0 :(得分:3)

您信任数据来源吗?如果是这样,那么不要担心验证。

另一方面,如果这些数据来自不受信任的来源 - 一个主要的例子:来自网页的用户提供的数据 - 那么是的,你绝对应该验证输入。

答案 1 :(得分:0)

在我看来,理论上你应该这样做。如果这是在课堂上向你询问的问题,答案应该是肯定的,你永远不知道发生了哪些角落案件,或者其他人必须维护你创建的应用程序,并且可能会破坏应用程序。

然而,在实践中,您的客户和雇主宁愿看到工作软件(至少对他们来说)很多代码行从来没有真正做过任何事情。我会把它写在我的待办事项清单上并做一些更高优先级的事情。