MVC คือ สถาปัตยกรรมซอฟต์แวร์ชนิดหนึ่ง ซึ่งปัจจุบันมี Frameworks สำหรับสร้าง Web จำนวนมาก แต่เกือบทั้งหมดมีโครงสร้างแบบ MVC ซึ่งแต่ละระบบจะถูกแบ่งส่วนออกเป็นสามส่วน คือ
1. Controller
- เป็นส่วนที่ทำงานเป็นอันดับแรกเมื่อมีโปรแกรมถูกเรียก จาก Web browser
- เป็นส่วนที่ติดต่อการทำงานระหว่างผู้ใช้และโปรแกรม
- มีการติดต่อกับ Database(ฐานข้อมูล) ด้วย Model และแสดงผลข้อมูลผ่านทาง View
- เป็นส่วนที่มีการประมวลผลหลัก ของโปรแกรม
2. Model
- ดูแลในเรื่องของการติดต่อสื่อสารระหว่าง Object และ Database โดยที่ผู้พัฒนาไม่ต้องยุ่งยากกับการใช้ SQL command
- เป็นงานด้านการตรวจสอบความสัมพันธ์ของข้อมูล มีผลกับฐานข้อมูล
- Handles validation(ตรวจสอบความถูกต้อง), association(ความสัมพันธ์ระหว่างฐานข้อมูล), transactions, and more…
3. View
- เป็นส่วนที่ต้องแสดงผลผ่าน web browser
- เขียนด้วยพื้นฐานของ HTML แทรกด้วย script PHP
- การทำงานสัมพันธ์อยู่กับ controller
- นำ component มาใช้ใหม่ได้ (Reusable)
- สนับสนุน Ajax
- View เป็นการแสดงผลทาง logic หรือ การทำอย่างไรให้ข้อมูลจาก Controller class ถูกแสดงผล
- นอกจากนี้ยังสามารถกำหนด stysheet และ template เพื่อให้งานเว็บแอพลิเคชั่นนั้นมีมาตรฐานเดียวกันทั้งหมด ในกรณี template จะสร้างไฟล์ ที่เป็นตัวกำหนด header, content, footer ไว้ที่โฟลเดอร์ layout ภายใต้โฟลเดอร์ view ซึ่งลักษณะการทำงานของไฟล์นี้ จะถูกเรียกใช้ในการแสดงผลทุกครั้ง เป็นต้น
ขั้นตอนการทำงานของ MVC
1. เริ่มจาก Client ส่ง Request ไปที่ Web ซึ่งจะถูกส่งต่อให้ Controller ทำการตรวจสอบข้อมูลที่มาให้ (Request Method, Request Parameters)
2. Controller เรียก Model ให้ทำงานเพื่อจัดการ Request นั้น
3. Model จะทำการคำนวณและอาจติดต่อกับ Database เพื่อจัดการกับ Request นั้น แล้วส่งผลลัพธ์กลับไปที่ Controller
4. เมื่อ Controller ได้ผลลัพธ์จาก Model แล้วก็ใช้ผลลัพธ์นั้นส่งต่อให้ View ทำงาน
5. View จะสร้าง Page สำหรับแสดงผลลัพธ์นั้น แล้วส่ง page กลับไปที่ Controller
6. Controller ส่ง Page นั้น (เป็น Response) กลับไปยัง Client