มีกรอบ PHP จำนวนหนึ่งพันล้านอัน และส่วนใหญ่ของพวกเขาเรียกเก็บเงินตัวเองเป็นดังต่อไปนี้รูปแบบ MVC ในขณะที่ยินดีที่จะเอาชนะรูปแบบการเข้ารหัส osCommerce (ตรรกะการประมวลผลอย่างมากผสมกับ SQL และ HTML) แต่ก็มีวิธีที่ง่ายกว่าและง่ายกว่าในการทำตามแนวทางเพื่อให้ได้การออกแบบแอปพลิเคชันที่คงไว้ได้
แนวคิด MVC ดั้งเดิมได้รับการกำหนดเป้าหมายที่แอปพลิเคชัน GUI และสำหรับ Gtk / Python ดูเหมือนจะเป็นไปได้ที่จะทำตามนั้น แต่เว็บแอป PHP ไม่ทำงานบน live Views (องค์ประกอบ GUI) และรันไทม์คอนโทรลเลอร์แบบต่อเนื่อง มันค่อนข้างผิดถ้ามันอธิบายการใช้การจัดกลุ่มไดเรกทอรี + รหัสหรือการตั้งชื่อคลาส
ดูเหมือนว่า "MVC" จะถูกใช้เหมือน buzzword สำหรับกรอบงาน PHP และฉันเคยเห็นเฟรมเวิร์ค PHP ที่เป็นผู้ใหญ่หนึ่งหรือสองเฟรมยอมรับแล้ว แต่นิยามวลีใหม่เพื่อจับคู่ interna
ปกติแล้วน้ำมันงูจะเป็นอย่างไร เหตุใดจึงไม่ใช้คำศัพท์ที่ดีกว่าและแนวคิดที่เหมาะสมกว่าสำหรับการเผยแพร่ PHP แบบบำรุงรักษาได้
การใช้เหตุผลบางอย่างละเอียด
ทำไมฉันสงสัยว่าการใช้งาน PHP ไม่เป็นไปตามรูปแบบ MVC จริง:
แบบจำลอง : ตามทฤษฎีแล้วแบบจำลองควรอ้วนและมีตรรกะทางธุรกิจและตัวควบคุมควรเป็นตัวจัดการแบบบาง (อินพุต -> เอาต์พุต) ในความเป็นจริง PHP frameworks สนับสนุนแบบจำลองตื้นๆ CI และ Symfony เช่นถือเอา Model == ORM แม้กระทั่งคอนโทรลเลอร์ HTTP ที่จัดการโดยอินพุตก็ยังไม่ถือว่าเป็นรูปแบบ
Views : การแก้ปัญหาด้วย AJAX ลดราคาไม่สามารถมี Views บนหน้าเว็บได้ กรอบ PHP ยังคงปั๊มหน้า อินเทอร์เฟซยังคงเป็นไปตามรูปแบบ HTTP ปกติอย่างมีประสิทธิภาพไม่มีประโยชน์จากแอปพลิเคชันที่ไม่ใช่ MVC (และสุดท้ายไม่มีเฟรมเวิร์ก php ที่แพร่หลายสามารถส่งออกไปยัง GUI Views แทน HTML ได้จริง ๆ แล้วฉันเคยเห็นไลบรารี PHP ที่สามารถใช้งาน Gtk / Console / Web ได้ แต่เฟรมเวิร์กไม่ได้)
ผู้ควบคุม : ฉันไม่แน่ใจ ตัวควบคุมอาจไม่จำเป็นต้องทำงานในระยะยาวและทำงานอย่างต่อเนื่องในรูปแบบ MVC ในบริบทของเฟรมเวิร์ก PHP พวกมันส่วนใหญ่ร้องขอตัวจัดการ ไม่ใช่สิ่งที่จะได้รับการโต้แย้งเกี่ยวกับมัน แต่มันก็รู้สึก buzzwordish เล็กน้อย
จะมีคำอธิบายที่ดีขึ้นหรือไม่ ฉันเห็นคำย่อเช่น PMVC หรือ HMVC โยนไปรอบ ๆ แม้ว่าคำอธิบายจะคลุมเครือมากขึ้น แต่สิ่งเหล่านี้อาจอธิบายถึงกรอบเว็บปัจจุบันที่ไม่ค่อยมีใครรู้?