ผมอยู่ในขั้นตอนของการพัฒนา PHP 5.3 กรอบ HMVC ของตัวเองที่เรียกว่าแม็กซ์ เนื่องจากฉันลงทุนและขายใน HMVC อย่างมากฉันจึงคิดว่าฉันสามารถเสนอมุมมองที่แตกต่างออกไปและอาจเป็นคำอธิบายที่ดีกว่าว่าเหตุใดจึงควรใช้ HMVC และประโยชน์ที่จะได้รับ
ประโยชน์ในทางปฏิบัติที่ใหญ่ที่สุดของการใช้สถาปัตยกรรม HMVC คือ "การสร้างวิดเจ็ต" ของโครงสร้างเนื้อหา ตัวอย่างเช่นการแสดงความคิดเห็นการให้คะแนน Twitter หรือการแสดงฟีด RSS ของบล็อกหรือการแสดงเนื้อหาในตะกร้าสินค้าสำหรับเว็บไซต์อีคอมเมิร์ซ โดยพื้นฐานแล้วเป็นเนื้อหาส่วนหนึ่งที่ต้องแสดงในหลาย ๆ หน้าและอาจอยู่ในที่ต่างๆกันขึ้นอยู่กับบริบทของคำขอ HTTP หลัก
เฟรมเวิร์ก MVC แบบดั้งเดิมโดยทั่วไปไม่ได้ให้คำตอบโดยตรงสำหรับโครงสร้างเนื้อหาประเภทนี้ดังนั้นคนทั่วไปจึงต้องทำซ้ำและสลับเลย์เอาต์โดยใช้ตัวช่วยที่กำหนดเองสร้างโครงสร้างวิดเจ็ตหรือไฟล์ไลบรารีของตนเองหรือดึงข้อมูลที่ไม่เกี่ยวข้องจากคำขอหลัก ตัวควบคุมเพื่อส่งผ่านไปยัง View และแสดงผลในบางส่วน สิ่งเหล่านี้ไม่ได้เป็นตัวเลือกที่ดีเป็นพิเศษเนื่องจากความรับผิดชอบในการแสดงเนื้อหาส่วนใดส่วนหนึ่งหรือการโหลดข้อมูลที่จำเป็นจะทำให้เกิดการรั่วไหลในหลายพื้นที่และมีการทำซ้ำในสถานที่ที่มีการใช้งาน
HMVC หรือโดยเฉพาะอย่างยิ่งความสามารถในการส่งคำขอย่อยไปยังผู้ควบคุมเพื่อจัดการกับความรับผิดชอบเหล่านี้เป็นทางออกที่ชัดเจน หากคุณคิดว่าคุณกำลังทำอะไรอยู่มันจะเข้ากับโครงสร้างคอนโทรลเลอร์อย่างแน่นอน คุณต้องโหลดข้อมูลบางอย่างเกี่ยวกับความคิดเห็นและแสดงในรูปแบบ HTML ดังนั้นคุณจึงส่งคำขอไปยังความคิดเห็น Controller พร้อมพารามิเตอร์บางตัวมันโต้ตอบกับ Model เลือก View และ View จะแสดงเนื้อหา ข้อแตกต่างเพียงอย่างเดียวคือคุณต้องการให้ความคิดเห็นแสดงแบบอินไลน์ใต้บทความบล็อกที่ผู้ใช้กำลังดูแทนที่จะเป็นหน้าความคิดเห็นแบบเต็มที่แยกจากกันโดยสิ้นเชิง (แม้ว่าจะใช้วิธี HMVC คุณสามารถให้บริการทั้งคำขอภายในและภายนอกด้วยคอนโทรลเลอร์เดียวกันและ "kill นกสองตัวกับหินก้อนเดียว "ดังคำกล่าว). ในเรื่องนี้ HMVC เป็นเพียงผลพลอยได้ตามธรรมชาติในการพยายามเพิ่มความเป็นโมดูลาร์โค้ดการใช้งานซ้ำและการรักษาแยกข้อกังวลที่ดีขึ้น นี่คือจุดขายของ HMVC
ดังนั้นในขณะที่บทความ TechPortal ของ Sam de Freyssinetเกี่ยวกับการปรับขนาดด้วย HMVC เป็นเรื่องที่น่าสนใจ แต่ก็ไม่ใช่ที่ที่ 90% + ของผู้ที่ใช้เฟรมเวิร์ก HMVC จะได้รับประโยชน์จริงในทางปฏิบัติในแต่ละวัน