Controller สมองของเฟรมเวิร์ค
หลังจากที่ผ่าน Router มาแล้ว ข้อมูลที่แยกได้จะถูกส่งไปยัง Controller โดยที่คชสารได้กำหนดให้มี คอนโทรลเลอร์หลักไว้อยู่แล้ว คือ \Index\Index\Controller (Kotchasan::$defaultController) พร้อมกับข้อมูลที่แยกได้ในรูปของ Request
คอนโทรลเลอร์จะมีหน้าที่สำคัญในการตัดสินใจว่าจะทำอย่างไรต่อกับข้อมูลที่ได้มา เปรียบเหมือนส่วนสมองกลของเว็บไซต์ เช่น
- ร้องขอข้อมูลเพิ่มเติมจาก Model
- เรียก Controller อื่นมาทำงานต่อ ตามหน้าที่ของมัน (เช่นการเรียกโมดูลมาทำงานต่อ)
- ส่งข้อมูลที่ประมวลผลได้ไปแสดงผลผ่านทาง View
จะเห็นได้ว่าโค้ดการทำงานส่วนใหญ่จะอยู่ที่ Controller นี้ และด้วยคอนเซ็ปต์ของคชสาร ทำให้การเขียนโค้ดส่วนใหญ่ของคุณ จะอยู่ที่ Controller นี้เท่านั้น โดยไม่ต้องไปยุ่งกับการคัดเลือกเส้นทางเลย
การสร้าง Controllerสร้างไฟล์ modules/index/controllers/index.php และเขียนโค้ดตามนี้
namespace Index\Index;
class Controller extends \Kotchasan\Controller
{
public function index(Request $request)
{
// เขียนโค้ดของคอนโทรลเลอร์ที่นี่
}
}
เมื่อสร้างไฟล์ที่มีโค้ดตามด้านบนเราจะได้คลาสที่มีชื่อว่า Index\Index\Controller ซึ่งเป็น defaultController นั่นเอง ซึ่งเมื่อมีการเรียกหน้าเว็บไซต์ก็จะทำการประมวลผลที่เมธอด index โดยมีพารามิเตอร์ $request ที่เก็บ Request Object ที่ถูกส่งมาพร้อมกับการเรียก URL