PHP Framework คืออะไร

ก่อนที่เราจะใช้ PHP Framework เราควรจะต้องรู้ก่อนว่ามัน คือ อะไร ใช้แล้วได้อะไร โดย PHP Framework คือ object และ function ที่เจ้าของ Framework นั้น ๆ เขียนไว้ให้เราเรียกใช้งาน ซึ่งเป็นพวกคำสั่งพื้นฐานที่เราต้องเขียนบ่อย เมื่อเราใช้ Framework เหล่านั้น เราก็ไม่ต้องไปเขียนใหม่นั่นเอง

เค้าจะรวมมาให้เราใช้ เพียงแต่ตั้งกติกาในการใช้งานมาให้เรา ซึ่งมีความซับซ้อนและยืดหยุ่นต่างกันออกไปตามยี่ห้อนั้น แล้วแต่เราชอบ แต่ที่แน่นอน คือ เราจะเขียน Code น้อยลงนั่นเอง เช่น ผมใช้ PHP Framework ที่ชื่อว่า Codeigniter (CI) ในการดึงค่าจากฐานข้อมูล ผมจะเขียนดังนี้

 

public function GetAll(){
    return $this->db->get(table);
}

 

ซึ่งถ้าเขียนด้วย PHP Code เองทั้งหมด ผมจะต้องเขียน ดังนี้

 

public function GetAll(){
    $sql = "SELECT * FROM table";
    $result = $conn->query($sql);
}

 

ถ้าดู Code แล้วยังไม่เข้าใจ ควรไป ศึกษาภาษา PHP พื้นฐานมาก่อนนะครับ แล้วค่อยขยับมาใช้ Codeigniter ผมว่าจะดีกว่าศึกษาควบคู่กันไปเลย หลังจากใช้งาน Codeigniter ได้ดีแล้วจะรู้สึกว่า ชีวิตในการเขียน PHP Code ง่ายขึ้นมาก ตัวอย่างนี้เพียงแต่แสดงให้เห็นว่า การเขียน Code บน PHP Framework จะสั้นและกระชับ สื่อความหมายได้ชัดเจนกว่าแบบไม่ใช้ Framework มาก หรือ เรียกว่า “สั้น กระชับ ชัดเจน”
 

การทำงานแบบ MVC (Model View Controller)

อีกเรื่องหนึ่งที่เราจะได้จากการใช้ PHP Framework อย่าง Codeigniter คือ การทำงานแบบ MVC (Model View Controller) ถ้าอยากรู้การทำงานจริงจังของมัน สามารถถาม อากู๋ (Google) ได้เอง ซึ่งผมจะอธิบายแบบให้เข้าใจง่าย ๆ คือ การจัดการไฟล์แบบแยกส่วนเอาไว้ แล้วค่อยดึงมาใช้ร่วมกัน โดย

  • Model เอาไว้จัดการ เงื่อนไขต่าง ๆ ถูกเรียกผ่าน Controller และ View โดย ผมใช้จัดการฐานข้อมูลเสียเป็นส่วนใหญ่ รวมถึง Business Logic ด้วยเช่นกัน
  • Controller เราเขียนเอาไว้ตัดสินใจที่ได้ผลลัพธ์จาก Model มาแล้ว ว่าจะไปไหน แสดงหน้าอะไร หรือจะเรียก Model อื่นมาต่อ ผมเขียนเอาไว้ที่นี่
  • View ตามชื่อเลย คือ แสดงผล แต่มันจะไม่แสดงผลเอง Controller เป็นตัวเรียกมันแสดงผล โดยส่ง Data ที่สังเคราะห์แล้ว ออกไปแสดงผล

 

 

แผนผังแสดงความเชื่อมโยงของ MVC (Model View Controller)

 

พอจัดกระบวนการทำงานอย่างนี้ เวลาเราทำงาน มันจะไม่มัดรวมกันไว้ ทำให้ทำงานง่าย เราอยากเพิ่มอะไรเข้าไปเราก็แก้เฉพาะส่วนนั้น ซึ่งเป็นคำพูดที่สวยหรูเลิศ ดีต่อใจมาก แต่เอาเข้าจริง ๆ บ่อยครั้ง ยังคงต้องตามไปแก้ในส่วนอื่นด้วยเหมือนกัน เพียงแต่จะหาจุดแก้ได้ง่าย หรือ จัดการง่ายขึ้นนั่นเอง แต่ View ถ้าแสดง Data เหมือนเดิม เราก็แก้เพียง View ได้เลยที่เดียวจบครับ

 

แสดงโครงสร้างไฟล์ที่ Codeigniter จัดเก็บ

 

มาพร้อมกับความปลอดภัยที่มากขึ้น

นอกจากที่กล่าวมาแล้ว เรื่องของความปลอดภัยนั้น PHP Framework หลาย ๆ ค่ายมักจะถูกออกแบบ ให้จัดการเรื่องการรับเฉพาะ input ที่ปลอดภัยเท่านั้น ทำให้เราง่าย (ง่ายอีกแระ) ต่อการจัดการ input ที่รับเข้ามา หรือ ไม่ต้องเขียน function มาจัดการอีกรอบนั่นเอง เว้นแต่กรณีเจอช่องโหว่ของระบบจริง ๆ ซึ่งจากประสบการณ์ยาวนาน ผมยังไม่เคยเจอหนัก ๆ นะครับ

สรุป คือ เราใช้ PHP Framework เพื่อเขียน code น้อยลง ทำให้เราทำงานได้เร็วขึ้น มีระบบจัดการเรื่องความปลอดภัยของ input มาดีในระดับนึง มีการทำงานของระบบแบบ MVC (Model View Controller) ทำให้เราจัดการ Code ได้ง่าย เวลาแก้ไข หรือ ปรับเปลี่ยน Version นั่นเอง