Bueno quiero empezar con a hacer unos tutoriales para que aprendamos a usar un framework de php. He elegido aprender Kumbia framework , ya les enseñe antes [como instalar kumbia en ubuntu/linux](https://paraisolinux.com/como- instalar-kumbia-en-ubuntulinux/). Ahora el problema es que este framework se basa en la programacion con arquitectura MVC y eso es algo totalemente nuevo para mi, he imagino que para algunos de Ustedes tambien. Asi que primero voy a explicar que es eso segun lo que lei y lo que puedo deducir de internet.

En 1979, Trygve Reenskaug desarrolló una arquitectura para desarrollar aplicaciones interactivas. En este diseño existían tres partes: modelos, vistas y controladores. MVC significa: Modelo Vista Controlador y basicamente se trata de programar en capas definidas y separadas.

Una de las ventajas de el modelo MVC es que permite distribuir el trabajo de creación de una aplicación por niveles, de este modo, cada grupo de trabajo está totalmente abstraído del resto de niveles, simplemente es necesario conocer la API (Interfaz de Aplicación) que existe entre niveles. La división en capas reduce la complejidad, facilita la reutilización y acelera el proceso de ensamblar o desensamblar alguna capa, o sustituirla por otra distinta.

Para muchos es mas facil entender el modelo viendo un grafico asi que aqui le dejo el de la wikipedia.

mvc Un diagrama sencillo que muestra la relación entre el modelo, la vista y el controlador. Nota: las líneas sólidas indican una asociación directa, y las punteadas una indirecta


Definición de las partes

El Modelo es el objeto que representa los datos del programa. Maneja los datos y controla todas sus transformaciones. El Modelo no tiene conocimiento específico de los Controladores o de las Vistas , ni siquiera contiene referencias a ellos. Es el propio sistema el que tiene encomendada la responsabilidad de mantener enlaces entre el Modelo y sus Vistas, y notificar a las Vistas cuando cambia el Modelo.

La Vista es el objeto que maneja la presentación visual de los datos representados por el Modelo. Genera una representación visual del Modelo y muestra los datos al usuario. Interactúa con el Modelo a través de una referencia al propio Modelo.

El Controlador es el objeto que proporciona significado a las ordenes del usuario, actuando sobre los datos representados por el Modelo. Cuando se realiza algún cambio, entra en acción, bien sea por cambios en la información del Modelo o por alteraciones de la Vista. Interactúa con el Modelo a través de una referencia al propio Modelo.

En una aplicacion web la vista es la página HTML, el CSS y todo lo que el usuario vea en la pantalla. El controlador es el código que provee de datos dinámicos a la página, es el que modifica la vista y el modelo segun sea necesario. Y el modelo contiene clases representativas de la aplicación o sea los datos de la base de datos.

En el libro de kumbia que se encuentra en la seccion descargas podemos encontrar mas sobre la arquitectura MVC pero personalmente no me gusta mucho el libro, no me parece ordenado ni con la informacion completa, pero de todos modos pueden buscar en internet mas info. Lo que si me parecio util fue esto:

La base de Kumbia es el MVC, un tradicional patrón de diseño que funciona en tres capas:

  • Modelos: Representan la información sobre la cual la aplicación opera, su lógica de negocios.
  • Vistas: Visualizan el modelo usando páginas Web e interactuando con los usuarios de éstas.
  • Controladores: Responden a acciones de usuario e invocan cambios en las vistas o en los modelos según sea necesario.

Esto nos sera util para mas adelante en los proximos posts que haga sobre Kumbia. Espero que se conformen con esto por ahora :P