En palabras sencillas en una forma de programar software usando tres conceptos Modelo, Vista y Controlador.
MVC es un patrón de diseño de software para programación donde se separa los datos, la lógica y la interfaz. Para lograrlo se proponen tres componentes: Modelo, Vista y Controlador. Esta forma de programar surge por la necesidad de crear software más robusto, de fácil mantenimiento y de código reutilizable.
En el desarrollo web, el MVC es de gran utilidad y la creación de soluciones web. Esta forma de desarrollo web el los últimos años a ganado popularidad y aceptación pues ya es muy utilizada. En efecto, se han desarrollado diversos frameworks que facilitan el desarrollo de aplicaciones web de forma rápida y segura con la garantía que ofrece la programación MVC.
Ahora vamos a detallar estos tres conceptos: Modelo, Vista y Controlador o en inglés Model, Views & Controllers
El Modelo
En esta capa se trabajan los datos. Por lo tanto aquí estarán los métodos para acceder a su información y actualizar su estado. Teniendo en cuenta que se trabaja con bases de datos contendrá todas las funciones para acceder a las tablas y realizar las diferentes operaciones como insertar, modificar, eliminar y las consultas entre otras.
Cabe mencionar que al escribir tu código te recomendamos trabajar bajo la forma de acceso datos basado en clases y objetos.
La Vista
El código que escribas en estos archivos te permitirá visualizar el resultado de tu programación, es decir, la interfaz de usuario. En esta capa puedes usar código html, php y otros que mostrará el resultado de tu página web. Las vistas trabajar directamente con los Modelos pues de estos obtienen los datos necesarios que mostrar en la Vista.
El Controlador
En esta capa escribimos código necesario para gestionar las peticiones de usuario desde la capa Vista hacia la capa Modelo, donde se procesa código que va a la base de datos. Luego la capa Controlador se encarga que el resultado se muestre nuevamente en la capa Vista.
Se puede decir que la capa Controlador sirve de enlace entra la Vista y el Modelo. Sin embargo no es responsable de manipular los datos o mostrar alguna salida en pantalla o interfaz sino servir de enlace entre los modelos y las vistas para dar soluciones e implementar una aplicación web.
Diagrama del patrón MVC
Como puede observar en el diagrama las diferentes capas colaboran entre sí para devolver un resultado al usuario. Este diagrama nos ayuda a entender la Arquitectura de Desarrollo de Software MVC.
Veamos el flujo que se sigue en el patrón MVC según el Diagrama:
- El usuario realizar una petición, sobre la aplicación web o al acceder a una página web. Esta recurre a la capa Controlador.
- Vemos que el controlador no solo se comunica con los modelos sino también con las vistas. El Controlador pide a los Modelos los datos de la base de datos. A la Vista le solicita la salida de información según la petición del usuario.
- A veces el Controlador hace de puente o enlace entre los Modelos y las Vistas pues estas últimas puede que pidan más información.
- Las Vistas envían las salidas a los usuarios. A veces va al controlador.
Por qué MVC
Sin duda porque el uso de ese patrón de desarrollo de software tiene muchos beneficios en la creacion de aplicación web, veamos una explicación interesante que hace desarrolloweb.com:
La rama de la ingeniería del software se preocupa por crear procesos que aseguren calidad en los programas que se realizan y esa calidad atiende a diversos parámetros que son deseables para todo desarrollo, como la estructuración de los programas o reutilización del código, lo que debe influir positivamente en la facilidad de desarrollo y el mantenimiento.
Los ingenieros del software se dedican a estudiar de qué manera se pueden mejorar los procesos de creación de software y una de las soluciones a las que han llegado es la arquitectura basada en capas que separan el código en función de sus responsabilidades o conceptos. Por tanto, cuando estudiamos MVC lo primero que tenemos que saber es que está ahí para ayudarnos a crear aplicaciones con mayor calidad.
Programe PHP con el patrón MVC
Claro esto tal vez requiera de usted un poco de esfuerzo. Pero el uso de este patrón de diseño de software en el desarrollo de grandes aplicaciones web se verá recompensado pues los beneficios superan los esfuerzos.
Existen muchos ejemplos de código php usando la programación MVC aquí les dejo un enlace gracias a nuestros amigo de jc-mouse.net. En el ejemplo podrás ver la necesidad de ordenar tus archivos en las siguientes carpetas: Controllers, Views y Models. Estas a la vez pueden estar en una carpeta app seguro que te será de mucha ayuda este ejemplo.