Istnieje około zillionów „frameworków PHP”. I większość z nich uważa się za podążających za wzorem MVC. O ile mile widziane jest przezwyciężenie stylu kodowania osCommerce (logika przetwarzania mocno zmieszana z SQL i HTML), z pewnością istnieją prostsze i łatwiejsze do podążenia podejścia w celu uzyskania możliwego do utrzymania projektu.
Oryginalna koncepcja MVC była ukierunkowana na aplikacje GUI. W przypadku Gtk / Python wydaje się, że można odpowiednio go zastosować. Ale aplikacje internetowe PHP nie działają na widokach na żywo (elementy GUI) i trwałym środowisku wykonawczym Kontrolera. Jest to z pewnością błędne określenie, jeśli opisuje tylko używany kod + grupowanie katalogów lub nazewnictwo klas.
„MVC” wydaje się być używane jako modne hasło do frameworków PHP. I rzeczywiście widziałem, że przyznaje to jedna lub dwie dojrzałe frameworki PHP, ale i tak redefiniuje to wyrażenie, aby pasowało do interny.
Czy to na ogół olej z węża? Dlaczego nie stosuje się lepszej terminologii i propaguje bardziej sensowną koncepcję łatwego w utrzymaniu PHP?
Niektóre szczegółowe rozumowania
Dlaczego podejrzewam, że implementacje PHP nie są zgodne z prawdziwym wzorcem MVC:
Modele : teoretycznie modele powinny być grube i zawierać logikę biznesową, a kontrolery powinny być cienkimi modułami obsługi (wejście-> wyjście). W rzeczywistości frameworki PHP zalecają płytkie modele. CI i Symfony na przykład równają model == ORM. Nawet wejście HTTP jest obsługiwane przez kontroler, nie jest traktowane jako model.
Wyświetlenia : obejścia z AJAX ze zniżką, na stronach internetowych nie może być wyświetleń. Frameworki PHP nadal pompują strony. Interfejs nadal skutecznie podąża za zwykłym modelem HTTP, nie ma przewagi nad aplikacjami innymi niż MVC. (I na koniec, żadna z szeroko rozpowszechnionych struktur php nie może faktycznie wyświetlać w widokach GUI zamiast HTML. Widziałem bibliotekę PHP, która może obsługiwać Gtk / Console / Web, ale nie.)
Kontroler : Nie jestem pewien. Kontrolery prawdopodobnie nie muszą być długo działające i stale aktywne w modelu MVC. W kontekście PHP są to jednak głównie programy obsługi żądań. Nie jest to coś, o co można się kłócić, ale wydaje się to nieco modne.
Czy byłyby lepsze deskryptory? Widziałem rzucane akronimy takie jak PMVC lub HMVC. Chociaż opisy stają się tam bardziej niejednoznaczne, może opisują obecne frameworki mniej hokey?