在我的库中,我有一个类进行一些处理,这个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
类时才会发生这种情况。
我只是不想添加验证,因此当我不相信它实际需要时会增加开销。
思想?
答案 0 :(得分:3)
您信任数据来源吗?如果是这样,那么不要担心验证。
另一方面,如果这些数据来自不受信任的来源 - 一个主要的例子:来自网页的用户提供的数据 - 那么是的,你绝对应该验证输入。
答案 1 :(得分:0)
在我看来,理论上你应该这样做。如果这是在课堂上向你询问的问题,答案应该是肯定的,你永远不知道发生了哪些角落案件,或者其他人必须维护你创建的应用程序,并且可能会破坏应用程序。
然而,在实践中,您的客户和雇主宁愿看到工作软件(至少对他们来说)很多代码行从来没有真正做过任何事情。我会把它写在我的待办事项清单上并做一些更高优先级的事情。