Yaklaşık bir milyon "PHP çerçevesi" var. Ve çoğu kendilerini MVC modelini takip ederek faturalandırıyor . OsCommerce kodlama stilinin (SQL ve HTML ile yoğun bir şekilde karıştırılmış işleme mantığı) üstesinden gelmek hoş olsa da, sürdürülebilir bir uygulama tasarımı elde etmek için takip edilmesi kesinlikle daha basit ve daha kolay yaklaşımlar vardır.
Orijinal MVC konsepti GUI uygulamalarını hedef aldı. Ve Gtk / Python için buna göre takip etmek mümkün görünüyor. Ancak PHP web uygulamaları canlı Görüntülemeler (GUI öğeleri) ve kalıcı bir Controller çalışma zamanında çalışmaz. Sadece kullanılan kod + dizin gruplaması veya sınıf isimlendirmesini açıklarsa kesinlikle yanlış bir isimdir.
"MVC" PHP çerçeveleri için bir terim gibi görünüyor. Ve aslında bir ya da iki olgun PHP çerçevesi itiraf gördüm, ama yine de interna maç için ifade yeniden tanımlamak.
Genelde yılan yağı mı? Neden daha iyi terminoloji kullanılmıyor ve sürdürülebilir PHP için daha mantıklı bir kavram yayılıyor?
Bazı ayrıntılı akıl yürütme
Neden PHP uygulamalarının gerçek MVC modelini takip etmediğinden şüpheleniyorum:
Modeller : teoride, Modeller şişman olmalı ve iş mantığı içermeli ve kontrolörler ince işleyiciler (giriş-> çıkış) olmalıdır. Gerçekte PHP çerçeveleri sığ modelleri savunuyor . Örneğin CI ve Symfony, Model == ORM'ye eşittir. HTTP girişi bile denetleyici tarafından işlenir, model olarak değerlendirilmez.
Görünümler : AJAX ile indirimli geçici çözümler, web sayfalarında Görünümler olamaz. PHP çerçeveleri hala sayfaları dışarı atıyor. Arayüz hala sıradan HTTP modelini etkili bir şekilde takip eder, MVC olmayan uygulamalara göre hiçbir avantajı yoktur. (Ve son olarak, yaygın php çerçevelerinin hiçbiri aslında HTML yerine GUI Görünümleri için çıktı olamaz. Gtk / Konsol / Web çalıştırabilen bir PHP kütüphanesi gördüm, ancak çerçeveler yok.)
Kontrolör : Emin değilim. Denetleyicilerin büyük olasılıkla MVC modelinde uzun süren ve sürekli aktif olmaları gerekmez. PHP çerçeve bağlamında, çoğunlukla istek işleyicileri. Gerçekten tartışacak bir şey değil, ama sadece biraz modası geliyor.
Daha iyi tanımlayıcılar olur mu? Kısaltılmış PMVC veya HMVC gibi kısaltmalar gördüm. Açıklamalar orada daha belirsiz olsa da, belki bunlar mevcut web çerçevelerini daha az hokeyle tarif eder?