Lo primero que debe establecer es lo que debe hacer exactamente, para decidir si un marco y / o MVC (u otro patrón de diseño) sería beneficioso.
Los marcos están ahí para proporcionar una plataforma consistente para el desarrollo, mientras que generalmente proporcionan soluciones a los requisitos de programación comunes (como la interacción de la base de datos, la creación y validación de formularios, la autenticación de usuarios, etc.)
Para PHP, al menos, el patrón de diseño MVC / HMVC tiende a dominar los marcos principales disponibles (por ejemplo , Zend , CakePHP , CodeIgniter , etc.), pero hay muchos patrones de diseño diferentes que uno podría usar.
MVC es muy popular porque ofrece una forma establecida y entendida de separar el modelado de datos y la lógica de procesamiento de la capa de vista / presentación (algo que se considera deseable para producir aplicaciones robustas y escalables).
Es importante tener en cuenta (y como lo expresó @Marjan Venema en un comentario a la respuesta de @ ElYusubov) que MVC, MVP, MVVM y los otros patrones MV x son (al menos en principio) el mismo 'patrón de diseño'.
Por lo general, los patrones de diseño diferentes sirven (a menudo sutilmente) para diferentes propósitos y, en varios casos, se desarrollaron con un lenguaje específico en mente. Sin embargo, un verdadero "patrón de diseño" no es una regla difícil y rápida para la programación y es realmente más una comprensión filosófica / idealógica de la implementación de un programa y los requisitos de diseño y las funciones lógicas.
La investigación es la mejor manera de conocer los principales principios de programación y las mejores prácticas, aquí hay algunos enlaces de Wikipedia para comenzar:
En la práctica, no hay nada que le impida implementar su propio "patrón", en mi opinión, la mejor manera es aprender haciendo, al menos para mí no entendí completamente el patrón MVC hasta que comencé a intentar escribir un sitio web con él.
Una vez que comprenda algunos de los conceptos de programación y las mejores prácticas, puede usarlos para construir su propio sistema para resolver los problemas específicos que enfrenta y satisfacer sus necesidades, ya sea que se ajuste a un 'patrón' establecido o no.
Si no tiene un conjunto específico de problemas para resolver, entonces aprender uno de los marcos comunes es su mejor opción.