Tùy thuộc vào phạm vi/định nghĩa của ứng dụng. Nhưng theo truyền thống, các hàm của bạn được sử dụng ở những nơi có thể $ object-> doSomething() làm điều đó. Bằng cách dựa vào xác nhận trong đó, bạn ngăn chặn khả năng làm điều gì đó() của ACCCord OWN của bạn, bạn biết không?
Quá, nếu bạn tiếp tục xác thực bên ngoài, bạn có thể dễ dàng quản lý nó. Không cần phải săn lùng nó trong chức năng nội bộ cụ thể đó. Giữ nguyên trạng thái này, nhưng giống như
$ data = $ validator-> sanitizeSomething ($ data); $ object-> doSomething ($ data);
điều này giúp quy tắc xác thực của bạn riêng biệt và dễ dàng quản lý cũng như các chức năng nội bộ của bạn.
Xây dựng, nói rằng bạn có một đối tượng db có thêm một mảng để bàn:
class db {
function addRow($table, $associativeArray) {
// primitive i know, just an example
}
}
bạn muốn xác nhận của bạn trong đó?
function addRow($table, $associativeArray) {
if(isset($assiciativeArray['description']) {
// validate
}
}
sẽ là ngớ ngẩn - bạn muốn rằng trong đối tượng bạn đang làm việc trong
class product {
function update() {
if($this->validate()) {
$this->db->addRow($this->toArray()); // or something, you get the idea, ya?
}
}
function validate() {
if($this->description != "") {
return true;
}
return false;
}
}
Nguồn
2010-06-07 20:00:02
http://symcbean.blogspot.co.uk/2017/07/validate-input-escape-output.html – symcbean