Unidad 4: Patrón MVC
4.1 Introducción al patrón Modelo-Vista-Controlador (MVC)
4.1.1 ¿Qué es MVC?
El patrón Modelo-Vista-Controlador (MVC) es una arquitectura de software ampliamente utilizada para el desarrollo de aplicaciones web. El propósito principal de MVC es separar la lógica de negocio de la interfaz de usuario y gestionar las interacciones entre los datos y la vista de manera más organizada. Esto facilita el mantenimiento, la escalabilidad y las actualizaciones del código a lo largo del tiempo.
Definición básica de MVC:
-
Modelo (Model): Es la capa de datos que se encarga de la lógica de negocio y el acceso a la base de datos. El Modelo representa los datos de la aplicación y las reglas de negocio. En PHP, los Modelos suelen interactuar directamente con la base de datos (usando PDO o MySQLi).
-
Vista (View): Es la capa de presentación que se encarga de mostrar la información al usuario. La Vista representa lo que el usuario ve: puede ser un formulario HTML, una tabla, una lista, etc.
-
Controlador (Controller): Es la capa intermedia que gestiona la interacción entre el Modelo y la Vista. El Controlador recibe las peticiones del usuario, procesa la información y decide qué datos enviar a la Vista. También puede recibir datos de la Vista y enviarlos al Modelo para su procesamiento.
-
Flujo de MVC: El flujo de MVC se refiere a cómo interactúan el Modelo, la Vista y el Controlador. Cuando un usuario realiza una acción (como hacer clic en un botón), el Controlador recibe esa acción, consulta al Modelo para obtener los datos necesarios y luego actualiza la Vista con esos datos. Este flujo permite una separación clara de responsabilidades y facilita el mantenimiento del código.
Flujo básico de MVC:
- El usuario interactúa con la Vista: Esto puede ser hacer clic en un botón, rellenar un formulario, etc. Al final el usuario genera una petición al servidor (
GET,POST, ...). - El Controlador recibe la acción del usuario: El Controlador es responsable de tomar las entradas del usuario y ejecutar las acciones correspondientes.
- El Controlador pide los datos al Modelo: El Controlador solicita los datos que necesita (por ejemplo, desde la base de datos).
- El Modelo obtiene o actualiza los datos: El Modelo interactúa con la base de datos o la fuente de datos para obtener la información.
- El Controlador pasa los datos a la Vista: El Controlador pasa los datos obtenidos al archivo de Vista para que el usuario pueda verlos.
- La Vista presenta los datos al usuario: La Vista se actualiza con la nueva información proporcionada por el Controlador.

4.1.2 Componentes principales de MVC
- Modelo:
- Gestiona los datos de la aplicación.
- Interactúa con la base de datos.
-
Encapsula la lógica de negocio y las reglas de validación de los datos.
-
Vista:
- Presenta los datos al usuario.
- Suele estar compuesta por HTML, CSS y algo de JavaScript.
-
Se encarga solo de la visualización y no debe contener lógica de negocio.
-
Controlador:
- Recibe las solicitudes del usuario (clics, formularios, enlaces).
- Llama a los métodos del Modelo para obtener los datos.
- Actualiza la Vista con los datos procesados.
4.1.3 ¿Por qué usar MVC?
El patrón MVC tiene varios beneficios que lo hacen muy útil en el desarrollo de aplicaciones web. Algunos de los principales beneficios son:
-
Separa las preocupaciones: MVC permite separar claramente los diferentes aspectos de la aplicación, lo que facilita su mantenimiento y escabilidad. Cada componente (Modelo, Vista, Controlador) tiene una responsabilidad específica.
-
Facilita la reutilización: Al tener el código de presentación (Vista) separado de la lógica de negocio (Modelo), se puede reutilizar el Modelo en diferentes vistas o aplicaciones.
-
Mejor organización: La estructura organizada en tres capas (Modelo, Vista, Controlador) hace que el código sea más fácil de entender y mantener.
-
Desarrollo paralelo: El uso de MVC permite que diferentes desarrolladores trabajen en el Modelo, la Vista y el Controlador de manera independiente sin interferir entre sí.
-
Facilita las pruebas: Al separar las responsabilidades, es más fácil realizar pruebas unitarias en el Modelo y el Controlador sin tener que preocuparnos por la Vista.
Mermaid: Diagrama de flujo de MVC
Para visualizar el flujo de MVC, podemos usar un diagrama de Mermaid que muestre cómo interactúan el Modelo, la Vista y el Controlador:
graph TD
A[Usuario] --> B[Controlador]
B --> C[Modelo]
C --> D[Base de datos]
B --> E[Vista]
E --> A
Explicación del Diagrama:
- El usuario interactúa con la Vista.
- El Controlador recibe las solicitudes del usuario y consulta el Modelo para obtener o actualizar los datos.
- El Modelo interactúa con la Base de datos para obtener o modificar los datos.
- El Controlador actualiza la Vista con los datos obtenidos.
- La Vista presenta los datos al usuario.
Resumen del punto 4.1:
- El patrón MVC es una arquitectura de software que separa la lógica de negocio (Modelo), la presentación (Vista) y la gestión de las interacciones (Controlador).
- Usar MVC ayuda a mejorar la organización del código, facilita el mantenimiento y permite trabajos paralelos de desarrollo.
- El flujo de MVC permite una interacción ordenada entre la base de datos, los datos que el usuario ve y las acciones que realiza.