在我的圖書館裏,我有一個班級做了一些處理,而這個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
類有它的一些干將這個過程對他們的回報$data1
和$data2
。
現在,對於這些工作的獲得者$data1
和$data2
將需要具有某種格式,例如,字符串,多維數組等
我處理班上總是正確的實例Result
,但我應該還是可以驗證數據進入Result
反正?
如果注入無效數據並運行特定方法,則會發生PHP錯誤,這顯然很糟糕。但只有當某人以錯誤的數據物理實例化Result
類時纔會發生這種情況。
我只是不想添加驗證,因此更多的開銷,當我不相信它實際上是必需的。
想法?
我認爲這個問題暗示了在沒有用戶輸入的情況下從代碼實例化結果類。 – TJHeuvel 2011-04-26 14:55:51
正如我所說的,在數據經過了一些廣泛的驗證和處理之後,'Result'類只能被* my *代碼實例化,所以當它被注入到Result中時,它可以被信任。唯一可能無效的方法是有人直接在此過程之外實例化「Result」,如果他們這樣做了,則無論如何都會中斷使用。所以我傾向於不重複驗證。 – 2011-04-26 14:58:42
@Stephen:那就是你的答案。 – 2011-04-26 14:59:52