Первое, что нужно установить, это то, что именно вам нужно сделать, чтобы решить, будет ли полезен фреймворк и / или MVC (или другой шаблон проектирования).
Фреймворки призваны обеспечить согласованную платформу для разработки, в то же время обычно предлагая решения для общих требований программирования (таких как взаимодействие с базой данных, создание и проверка форм, аутентификация пользователей и т. Д.)
Для PHP, по крайней мере, шаблон проектирования MVC / HMVC имеет тенденцию доминировать над доступными основными средами (например, Zend , CakePHP , CodeIgniter и т. Д.), Но есть много различных шаблонов проектирования, которые можно использовать.
MVC настолько популярен, потому что он предлагает установленный и понятный способ отделения логики моделирования и обработки данных от уровня представления / представления (то, что считается желательным для создания надежных, масштабируемых приложений).
Важно отметить (и, как было сказано @Marjan Venema в комментарии к ответу @ ElYusubov), MVC, MVP, MVVM и другие шаблоны MV x (по крайней мере, в принципе) являются одним и тем же «шаблоном проектирования».
Обычно разные шаблоны проектирования служат (часто незаметно) различным целям и в некоторых случаях были разработаны с учетом конкретного языка. Однако истинный «шаблон проектирования» не является жестким и быстрым правилом программирования и в действительности представляет собой скорее философское / идеологическое понимание требований к реализации программ, требований к дизайну и логических функций.
Исследование - лучший способ узнать о различных принципах программирования и передовых практиках, вот несколько ссылок на Википедию, с которых можно начать:
На практике ничто не мешает вам реализовать свой собственный «шаблон», IMO - лучший способ учиться на практике, по крайней мере, для меня я не до конца понимал шаблон MVC, пока не начал пытаться написать веб-сайт, используя его.
Как только вы поймете некоторые концепции программирования и лучшие практики, вы сможете использовать их для построения своей собственной системы для решения конкретных проблем, с которыми вы сталкиваетесь, и удовлетворения ваших потребностей, независимо от того, соответствует ли это установленному «шаблону» или нет.
Если у вас нет конкретного набора проблем, которые нужно решить, то лучше всего изучить одну из общих систем.