Kotchasan PHP Framework

ความหมายของ 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

  1. โครงสร้างที่เป็นระบบ การแยกแอปพลิเคชันออกเป็นโมดูลย่อยๆ ช่วยให้โค้ดมีความเป็นระเบียบและจัดการได้ง่าย
  2. การบำรุงรักษาง่าย เมื่อจำเป็นต้องแก้ไขหรือเพิ่มฟีเจอร์ใหม่ๆ การเปลี่ยนแปลงจะกระทบเฉพาะโมดูลที่เกี่ยวข้อง ทำให้ไม่ส่งผลต่อโมดูลอื่นๆ ในระบบ
  3. การทำงานร่วมกันที่มีประสิทธิภาพ การแยกโครงสร้างเป็นโมดูลทำให้ทีมพัฒนาหลายคนสามารถทำงานพร้อมกันได้โดยไม่ทำให้เกิดการซ้อนทับของโค้ด
  4. ลดเวลาในการพัฒนา โค้ดแต่ละโมดูลสามารถพัฒนาและทดสอบได้แยกกัน ทำให้กระบวนการพัฒนาเร็วขึ้น

MMVC เหมาะสำหรับโครงการขนาดใหญ่ที่มีหลายฟังก์ชัน เพราะช่วยให้การจัดการโค้ดง่ายขึ้นและสามารถบำรุงรักษาได้อย่างมีประสิทธิภาพ

โครงสร้างโมดูลของ Kotchasan

  • modules/
    1. index/ โมดูล Index
        1. models/ เป็นไดเรคทอรี่ที่เก็บไฟล์ที่เป็น Model
          1. index.php ไฟล์ของคลาส Index\Index\Model
          2. main.php ไฟล์ของคลาส Index\Main\Model
        2. controllers/ เป็นไดเรคทอรี่ที่เก็บไฟล์ที่เป็น Controller
          1. index.php ไฟล์ของคลาส Index\Index\Controller
          2. main.php ไฟล์ของคลาส Index\Main\Controller
        3. views/ เป็นไดเรคทอรี่ที่เก็บไฟล์ที่เป็น View
          1. index.php ไฟล์ของคลาส Index\Index\View
          2. main.php ไฟล์ของคลาส Index\Main\View
    2. document/ โมดูล Document
    3. board/ โมดูล Forum

กฎของ MMVC ใน Kotchasan

  1. โมดูลต้องอยู่ในไดเรกทอรี modules/ เท่านั้น โครงสร้างโมดูลใน Kotchasan กำหนดให้ทุกโมดูลต้องถูกเก็บในไดเรกทอรีนี้
  2. แต่ละโมดูลคือหนึ่งไดเรกทอรี แต่ละไดเรกทอรีใน modules/ จะเป็นโมดูลแยกกัน เช่น โมดูล Index, Document, Board
  3. โครงสร้าง Model, Controller, View ในแต่ละโมดูล โมดูลแต่ละตัวจะต้องประกอบด้วยไฟล์ Model, Controller, และ View ในไดเรกทอรี models/, controllers/, และ views/ ตามหลักการของ MVC
  4. การตั้งชื่อคลาส ชื่อคลาสจะต้องตรงกับชื่อไฟล์ เช่น /index/controllers/main.php จะเป็นคลาส Index\Main\Controller
  5. ชื่อไฟล์และไดเรกทอรีต้องเป็นตัวพิมพ์เล็ก ชื่อไฟล์ทั้งหมดจะต้องใช้ตัวพิมพ์เล็กเท่านั้น แต่สามารถมีตัวเลขและ _ ได้ตามกฎการตั้งชื่อคลาส
  6. โมดูล Index เป็นโมดูลหลัก Kotchasan กำหนดว่าโมดูล Index เป็นโมดูลที่ขาดไม่ได้ และต้องมีไฟล์ modules/index/controllers/index.php หรือคลาส Index\Index\Controller อยู่เสมอ เนื่องจากเป็นคอนโทรลเลอร์หลักที่ Framework เรียกใช้งาน

โครงสร้างนี้ช่วยให้ Kotchasan Framework รองรับการพัฒนาแอปพลิเคชันที่มีความซับซ้อน ทำให้การพัฒนาเป็นระบบและมีความยืดหยุ่นมากขึ้น ยกตัวอย่างเช่น GCMS ซึ่งเป็น CMS ที่สร้างจาก Kotchasan