Існує близько мільйона "фреймворків PHP". І більшість із них вважають себе такими, що відповідають шаблону MVC. Хоча можна подолати стиль кодування osCommerce (логіка обробки, сильно змішана з SQL та HTML), безумовно, є простіші та простіші дотримання підходів для отримання реконструктивного дизайну додатків.
Оригінальна концепція MVC була орієнтована на програми GUI. А для Gtk / Python здається, що це можливо дотримуватися відповідно. Але веб-додатки PHP не працюють на режимах перегляду в реальному часі (елементи графічного інтерфейсу) та постійному режимі роботи контролера. Це, безумовно, помилково, якщо він просто описує використаний код + групування каталогів або назви класів.
Здається, "MVC" використовується як модна мова для фреймворків PHP. І я насправді бачив, як одна-дві зрілі рамки PHP це визнають, але переосмислюючи фразу все одно, щоб вона відповідала інтерні.
Так це взагалі зміїна олія? Чому не використовується краща термінологія, а більш розумна концепція пропагандированного PHP?
Деякі детальні міркування
Чому я підозрюю, що реалізація PHP не відповідає реальній схемі MVC:
Моделі : теоретично, моделі повинні бути жирними і містити ділову логіку, а контролери - тонкі обробники (введення> вихід). Насправді рамки PHP виступають неглибоко моделі. CI і Symfony, наприклад, прирівнюють Модель == ORM. Навіть вхід HTTP обробляється контролером, не розглядається як модель.
Перегляди : обхідні шляхи із знижкою AJAX, на веб-сторінках не може бути переглядів. Рамки PHP все ще викачують сторінки. Інтерфейс все ще ефективно відповідає звичайній HTTP-моделі, немає переваг перед не-MVC-програмами. (І нарешті, жодна з широко розповсюджених фреймворків PHP фактично не може виводити в GUI Views замість HTML. Я бачив бібліотеку PHP, яка може працювати з Gtk / Console / Web, але фреймворки не роблять.)
Контролер : Я не впевнений. Контролерам, напевно, не потрібно бути тривалими та наполегливо активними у моделі MVC. Однак в контексті PHP вони, в основному, обробляють запити. Насправді не про що можна аргументувати, але це просто трохи химерно.
Чи будуть кращі дескриптори? Я бачив такі акроніми, як PMVC або HMVC, кинуті навколо. Хоча описи там стають більш амбітними, можливо, вони описують поточні веб-рамки менш хокейними?