Framework MVC

Hoy en día los términos Framework y MVC son muy utilizados dentro del mundo del desarrollo informático y personalmente creo que suele ser un poco difícil entenderlos rápidamente, por lo que me gustaría hacer una explicación sencilla nada más para introducir a los demás artículos sobre el framework MVC para PHP llamado Symfony del cual estaré hablando con las siguientes entradas del blog.

Considero muy interesante esta parte de la definición para framework publicada por wikipedia:

… conjunto estandarizado de conceptos, prácticas y criterios … Son
diseñados con la intención de facilitar el desarrollo de software,
permitiendo a los diseñadores y programadores pasar más tiempo
identificando requerimientos de software que tratando con los tediosos
detalles de bajo nivel …

Un framework es mucho más que solo un conjunto de librerías que ayudan a programar más rápido, es una llamada de atención que dice: “Señores, pongámonos de acuerdo y hagámoslo de esta forma … yo te ayudo pero yo pongo las reglas”. Esto finalmente son nuevas reglas para programar que ayudan a mantener un código uniforme, ordenado y por sobre todo siguiendo un estándar.

Uno de los modelos de framework más utilizado actualmente con gran impacto es el modelo MVC. Personalmente me costo mucho trabajo entenderlo pero una vez que estuve dentro me pareció una idea estupenda para organizar y dividir el trabajo.

Wikipedia nos dice:

… estilo de arquitectura de software que separa los datos de una
aplicación, la interfaz de usuario, y la lógica de control (negocio)
en tres componentes distintos …

Cuales son los tres componentes de este modelo?

  • Model o Modelado: Se encarga de interactuar con los datos, si alguien
    necesita información, ésta es obtenida por este componente. View o
  • Vista: Los datos deben ser mostrados al usuario de la aplicación lo
    más atractivo posible.
  • Controller o controlador: Aquí es donde la lógica del negocio es
    analizada y habla con los dos componentes anteriores.

Expliquemos gráficamente el proceso de interacción entre los tres componentes.

Diagrama de interacción

  1. El usuario (PC), a través del View, ejecuta una acción en una página HTML, por ejemplo pulsando un botón de un formulario.
  2. Al pulsarlo se ejecuta un request que va al servidor pegando directamente contra el Controller quien se encarga de analizar la petición de usuario.
  3. En caso de que la respuesta a esa petición necesite datos almacenados en la base de datos, el Controller solicita al Model que obtenga y retorne los datos en un formato que él pueda entender.
  4. Una vez que los datos son transferidos nuevamente al Controller, éste lo otorga al View nuevamente para realizar la respuesta (response) a la solicitud inicial del usuario.

Uno de los principales beneficios que encuentro utilizando esta arquitectura es que el mantenimiento de la aplicación se hace mucho más fácil ya que es muy sencillo saber que si hay problemas con la visualización de la página, lo más probable es que tenga que revisar al nivel de la vista. Si el problema es con los datos lo hago a nivel del modelado y si el resultado no coincide con la lógica de negocio esperada apunto al controlador.

Concusión

Mientras más pueda yo separar las cosas en unidades pequeñas es más sencillo resolver los problemas. No solo nos dicen que mezclar HTML, CSS, JavaScript y PHP en una misma página está mal, sino que ahora dividimos aún más nuestra mente para saber donde escribimos nuestras líneas de código.

Un comentario en “Framework MVC”

Comenta este artículo