ความหมายของ MMVC และโมดูลของคชสาร
MMVC (Modules-Model-View-Controller) เป็นแนวคิดที่พัฒนาต่อยอดจาก MVC (Model-View-Controller) โดยเน้นการแยกแอปพลิเคชันออกเป็นโมดูลย่อยๆ ซึ่งทำให้การจัดการโค้ดในแอปพลิเคชันขนาดใหญ่เป็นระบบระเบียบและง่ายต่อการดูแล โมดูลแต่ละตัวจะมีโครงสร้างที่ประกอบไปด้วย Model, View และ Controller เป็นของตัวเอง ทำให้ง่ายต่อการพัฒนาและบำรุงรักษาโค้ด
โครงสร้างของ MMVC
- Modules โมดูลใน MMVC เป็นส่วนย่อยของแอปพลิเคชันที่ทำงานได้อย่างอิสระ แต่ละโมดูลจะประกอบด้วย Model, View และ Controller ที่เชื่อมโยงกัน การแยกโมดูลทำให้สามารถพัฒนาแต่ละส่วน เช่น โมดูลผู้ใช้, โมดูลสินค้า หรือโมดูลระบบสมาชิก ได้อย่างเป็นระเบียบและง่ายต่อการจัดการ
- Model ทำหน้าที่จัดการกับข้อมูล เช่น การเชื่อมต่อฐานข้อมูล การบันทึก และการดึงข้อมูลต่างๆ
- View รับผิดชอบการแสดงผลข้อมูล โดยการนำข้อมูลจาก Model มาแสดงผลบนหน้าจอของผู้ใช้
- Controller ทำหน้าที่ควบคุมการไหลของข้อมูลระหว่าง Model และ View รับคำสั่งจากผู้ใช้และประมวลผลต่างๆ ในแอปพลิเคชัน
ข้อดีของ MMVC
- โครงสร้างที่เป็นระบบ การแยกแอปพลิเคชันออกเป็นโมดูลย่อยๆ ช่วยให้โค้ดมีความเป็นระเบียบและจัดการได้ง่าย
- การบำรุงรักษาง่าย เมื่อจำเป็นต้องแก้ไขหรือเพิ่มฟีเจอร์ใหม่ๆ การเปลี่ยนแปลงจะกระทบเฉพาะโมดูลที่เกี่ยวข้อง ทำให้ไม่ส่งผลต่อโมดูลอื่นๆ ในระบบ
- การทำงานร่วมกันที่มีประสิทธิภาพ การแยกโครงสร้างเป็นโมดูลทำให้ทีมพัฒนาหลายคนสามารถทำงานพร้อมกันได้โดยไม่ทำให้เกิดการซ้อนทับของโค้ด
- ลดเวลาในการพัฒนา โค้ดแต่ละโมดูลสามารถพัฒนาและทดสอบได้แยกกัน ทำให้กระบวนการพัฒนาเร็วขึ้น
MMVC เหมาะสำหรับโครงการขนาดใหญ่ที่มีหลายฟังก์ชัน เพราะช่วยให้การจัดการโค้ดง่ายขึ้นและสามารถบำรุงรักษาได้อย่างมีประสิทธิภาพ
โครงสร้างโมดูลของ Kotchasan
- modules/
- index/ โมดูล Index
-
- models/ เป็นไดเรคทอรี่ที่เก็บไฟล์ที่เป็น Model
- index.php ไฟล์ของคลาส Index\Index\Model
- main.php ไฟล์ของคลาส Index\Main\Model
- controllers/ เป็นไดเรคทอรี่ที่เก็บไฟล์ที่เป็น Controller
- index.php ไฟล์ของคลาส Index\Index\Controller
- main.php ไฟล์ของคลาส Index\Main\Controller
- views/ เป็นไดเรคทอรี่ที่เก็บไฟล์ที่เป็น View
- index.php ไฟล์ของคลาส Index\Index\View
- main.php ไฟล์ของคลาส Index\Main\View
- document/ โมดูล Document
- board/ โมดูล Forum
กฎของ MMVC ใน Kotchasan
- โมดูลต้องอยู่ในไดเรกทอรี
modules/
เท่านั้น โครงสร้างโมดูลใน Kotchasan กำหนดให้ทุกโมดูลต้องถูกเก็บในไดเรกทอรีนี้ - แต่ละโมดูลคือหนึ่งไดเรกทอรี แต่ละไดเรกทอรีใน
modules/
จะเป็นโมดูลแยกกัน เช่น โมดูล Index, Document, Board - โครงสร้าง Model, Controller, View ในแต่ละโมดูล โมดูลแต่ละตัวจะต้องประกอบด้วยไฟล์ Model, Controller, และ View ในไดเรกทอรี
models/
,controllers/
, และviews/
ตามหลักการของ MVC - การตั้งชื่อคลาส ชื่อคลาสจะต้องตรงกับชื่อไฟล์ เช่น
/index/controllers/main.php
จะเป็นคลาสIndex\Main\Controller
- ชื่อไฟล์และไดเรกทอรีต้องเป็นตัวพิมพ์เล็ก ชื่อไฟล์ทั้งหมดจะต้องใช้ตัวพิมพ์เล็กเท่านั้น แต่สามารถมีตัวเลขและ
_
ได้ตามกฎการตั้งชื่อคลาส - โมดูล Index เป็นโมดูลหลัก Kotchasan กำหนดว่าโมดูล Index เป็นโมดูลที่ขาดไม่ได้ และต้องมีไฟล์
modules/index/controllers/index.php
หรือคลาสIndex\Index\Controller
อยู่เสมอ เนื่องจากเป็นคอนโทรลเลอร์หลักที่ Framework เรียกใช้งาน
โครงสร้างนี้ช่วยให้ Kotchasan Framework รองรับการพัฒนาแอปพลิเคชันที่มีความซับซ้อน ทำให้การพัฒนาเป็นระบบและมีความยืดหยุ่นมากขึ้น ยกตัวอย่างเช่น GCMS ซึ่งเป็น CMS ที่สร้างจาก Kotchasan