ไม่มีวิธีที่ดีกว่านี้ แต่เนื่องจากเป็นการดำเนินการที่คุณมักจะทำบ่อยๆคุณจึงควรดำเนินการโดยอัตโนมัติ
เฟรมเวิร์กส่วนใหญ่เสนอวิธีการในการแยกวิเคราะห์ข้อโต้แย้งเป็นเรื่องง่าย คุณสามารถสร้างวัตถุของคุณเองได้ ตัวอย่างที่รวดเร็วและสกปรก:
class Request
{
// This is the spirit but you may want to make that cleaner :-)
function get($key, $default=null, $from=null)
{
if ($from) :
if (isset(${'_'.$from}[$key]));
return sanitize(${'_'.strtoupper($from)}[$key]); // didn't test that but it should work
else
if isset($_REQUEST[$key])
return sanitize($_REQUEST[$key]);
return $default;
}
// basics. Enforce it with filters according to your needs
function sanitize($data)
{
return addslashes(trim($data));
}
// your rules here
function isEmptyString($data)
{
return (trim($data) === "" or $data === null);
}
function exists($key) {}
function setFlash($name, $value) {}
[...]
}
$request = new Request();
$question= $request->get('question', '', 'post');
print $request->isEmptyString($question);
Symfony ใช้น้ำตาลชนิดนั้นอย่างหนาแน่น
แต่คุณกำลังพูดถึงมากกว่านั้นด้วย "// จัดการข้อผิดพลาดของคุณที่นี่" คุณกำลังผสม 2 งาน: รับข้อมูลและประมวลผล สิ่งนี้ไม่เหมือนกันเลย
มีกลไกอื่น ๆ ที่คุณสามารถใช้ในการตรวจสอบข้อมูล อีกครั้งกรอบสามารถแสดง pratices ที่ดีที่สุด
สร้างวัตถุที่แสดงข้อมูลของแบบฟอร์มของคุณจากนั้นแนบโปรเซสและถอยกลับไป ฟังก์ชั่นการแฮ็คสคริปต์ PHP อย่างรวดเร็ว (และเป็นครั้งแรก) แต่มันสามารถนำกลับมาใช้ใหม่ได้มีความยืดหยุ่นและมีข้อผิดพลาดน้อยกว่าเนื่องจากการตรวจสอบรูปแบบด้วย PHP ปกติมักจะกลายเป็นรหัสสปาเก็ตตี้