Arquitectura MVC: Modelo, Vista y Controlador

Clase 3 de 35Curso de Desarrollo Web con PHP y Yii2

Contenido del curso

Modelos, vistas y controladores

Enlaces, navegación y tablas intermedias

Resumen

Comprender cómo se organiza una aplicación es fundamental para escribir código limpio, mantenible y escalable. Entre todas las arquitecturas disponibles, la de modelo, vista y controlador (MVC) es una de las más probadas y utilizadas en el desarrollo de software. Su fortaleza radica en un principio simple pero poderoso: cada capa tiene responsabilidades claras, y respetarlas marca la diferencia entre un proyecto sostenible y uno caótico.

¿Qué responsabilidad cumple cada capa en MVC?

La arquitectura MVC divide la aplicación en tres capas bien definidas [0:22]. Cada una se encarga de tareas específicas y ninguna debe invadir el terreno de las otras.

¿Qué hace el modelo?

El modelo es el responsable de empaquetar la información de forma estandarizada para que todas las demás capas vean exactamente los mismos recursos, atributos y funciones [0:30]. Se comunica con la base de datos, ejecuta queries y devuelve los datos organizados en objetos que pueden viajar entre capas sin ambigüedad.

¿Qué hace la vista?

La vista cumple dos funciones: presentar información al usuario y recopilar datos que el usuario ingresa [0:42]. Lo crucial es que la vista jamás accede directamente a la base de datos. No ejecuta un SELECT * ni ninguna consulta SQL. Simplemente interpreta lo que el modelo le envía a través del controlador y lo despliega [1:19].

  • Presenta datos al usuario final.
  • Recopila entradas como texto, clics o interacciones.
  • Formatea la salida en HTML, JSON, XML u otro formato.

Históricamente, lenguajes como PHP permitían mezclar consultas SQL dentro de las vistas, lo que generaba desorden y código difícil de mantener [1:32]. MVC existe precisamente para evitar ese problema.

¿Qué hace el controlador?

El controlador es una capa sencilla pero crucial [1:01]. Su trabajo consiste en interpretar lo que viene de la vista, comunicarse con el modelo para obtener o procesar datos, y devolver la respuesta a la vista. No debe imprimir HTML ni formatear datos; eso le corresponde a la vista [1:56].

¿Cómo viaja un request a través de MVC?

Para entender el flujo completo, imaginemos que un usuario busca el término "Luis" en una lista de autores [2:18].

  1. El usuario escribe "Luis" en la vista.
  2. La vista crea un objeto request y lo envía al controlador [2:28].
  3. El controlador procesa el request, lo interpreta y le dice al modelo: "búscame todos los autores que se llamen Luis" [2:40].
  4. El modelo va a la base de datos, ejecuta la consulta correspondiente y empaqueta los resultados en un formato estándar [2:52].
  5. El modelo devuelve esos datos empaquetados al controlador.
  6. El controlador convierte el request en un objeto response y lo envía a la vista [3:14].
  7. La vista recibe el response, lee los objetos tipo modelo que vienen dentro y los despliega, por ejemplo, como una lista con el nombre del autor y cuántos libros tiene [3:30].

Este ciclo request-response no solo ocurre cuando el usuario escribe algo. Un clic, un mouse over o casi cualquier acción en una aplicación web puede disparar este mismo flujo [3:50]. En algunos casos, el controlador ni siquiera necesita al modelo: puede simplemente redirigir el request sin consultar datos [3:44].

¿Por qué MVC facilita el mantenimiento de tu aplicación?

Respetar la separación de responsabilidades convierte tu aplicación en algo entendible, mantenible y preparado para el futuro [1:47]. Cuando algo falla o necesita mejorar, sabes exactamente dónde buscar:

  • Cambiar el color de una pantalla: ve a la vista [4:17].
  • Optimizar un query: ve al modelo [4:20].
  • Diagnosticar lentitud en el procesamiento: empieza por el controlador [4:24].

El concepto de objeto modelo es transversal a toda la arquitectura. Es la unidad de datos empaquetados que viaja entre capas, asegurando que todos hablen el mismo idioma dentro del sistema [3:24]. Los datos crudos se transforman en información útil gracias a este empaquetado estándar.

La clave está en la disciplina: cada capa hace lo suyo y nada más. ¿Ya has trabajado con MVC en algún proyecto? Comparte tu experiencia y qué retos encontraste al separar responsabilidades.

      Arquitectura MVC: Modelo, Vista y Controlador