Archivo

Archivo para la categoría ‘controllers’

MVC – Model – View – Controller

Sábado, 17 de Enero de 2009

MVC :: Model – View – Controller

Cake aplica una estructura MCV para las aplicaciones web. Básicamente es separar operaciones típicas en áreas específicas: Models para todas las iteraciones con la base de datos, Views para todas las salidas o respuestas que son enviadas al usuario, y Controllers para toda la lógica o el control de flujo de la aplicación.

Models

En cakephp, un modelo representa gereralmente una tabla de la base de datos en particular. Cada tabla de la base de datos debe tener su modelo que la represente. Así, en cakephp, cada tabla en la base de datos tiene su propio modelo. Todo el código PHP relacionado con acceder, editar, modificar o borrar registros de las tablas están situados en el modelo. También, contiene código que define su relación con otros modelos. Además, se definen reglas de validación de datos cuando van a ser agregados  para ese modelo. Los modelos pueden ser vistos como la capa de datos de la aplicación.

Controllers

En cakephp, los controladores, controlan el flujo de la aplicación o lógica de la aplicación. Cada solicitud de datos web es dirigida a un controlador en particular donde  la entrada del usuario(data POST O GET) es aceptada. La lógica del controlador decide que respuesta es generada. Normalmente, la lógica del controlador contiene llamadas a los modelos para acceder a los datos, y también otra funcionalidad como control de acceso, chequeos etc. Luego, el controlador pasa la respuesta (salida) a la vista. Puede ser visto como la capa que controla la lógica de una aplicación.

Views

Son las salidas o respuestas que son enviadas de regreso al usuario una vez que la solicitud es procesada. Básicamente consiste en las etiquetas de código (como HTML) con código PHP incrustado, pero también puede contener otras formas de salida como XML, documentos PDF etc. Se puede ver como la capa de presentación de la aplicación.

Cómo funciona

A continuación vemos cómo funciona mvc en cake.

Cómo cakephp usa mvc

Cómo cakephp usa mvc, tomada de Beginning cakephp from novie to professional

Básicamente es:

  1. El cliente envía una una petición a la aplicación, ya sea ingresando a una url o haciendo clic en un link. Usualmente en cake, una url es estructurada así: http://(dominio.com)/(Aplicación)/(Controlador)/(Acción)/(parametro1, parametro2…)
  2. El dispatcher captura la url y determina que controlador ejecutar. También pasa la acción y los parámetros al controlador.
  3. Se envían peticiones al Modelo para obtener acceso a los datos de la aplicación. Un Modelo normalmente representa una tabla en la base de datos, pero también puede representar canales RSS, LDAP, o archivos en el sistema.
  4. El scritp del Modelo determina cómo debe interactuar con la base de datos usando la petición enviada por el Controlador.
  5. Una vez el Modelo ha puesto los datos enviados o tomados en la base de datos, retorna la respuesta en el Controlador.
  6. El Controlador procesa la respuesta y genera una salida en el archivo de Vista.
  7. La Vista agrega cualquier diseño o muestra los datos a la salida del Controlador y se le envía la salida al navegador del cliente.

Beneficios

Los beneficios de usar MVC es que nos ayuda a estructurar el código de modo que permita un rápido desarrollo. También nos ayuda a reusar código haciendo que la aplicación obtenga un liviano peso. Agregar nuevas funciones se hace de forma rápida y hacer cambios en algún lugar sin afectar otras partes. Ayuda a diseñadores y desarrolladores a trabajar simultanéamente.

cakephp, controllers, models, mvc, views , , , , , ,