Table of Contents : El manual

Entendiendo Modelo-Vista-Controlador

Visión general

Las aplicaciones CakePHP bien escritas siguen el patrón de diseño de software MVC (Modelo-Vista-Controlador). Programar utilizando MVC consiste en separar la aplicación en tres partes principales. El modelo representa los datos de la aplicación, la vista hace una presentación del modelo de datos, y el controlador maneja y enruta las peticiones [requests] hechas por los usuarios.

IMAGEN

Figura 1: Una petición MVC básica

La figura 1 muestra un ejemplo pelado de una petición [request] MVC en CakePHP. A efectos ilustrativos, supongamos que un usuario llamado Ricardo acaba de hacer clic en el enlace "¡Comprar un pastel personalizado ahora!" de la página de inicial de la aplicación.

  1. Ricardo hace clic en el enlace apuntando a http://www.ejemplo.com/pasteles/comprar, y su navegador hace una petición al servidor web.
  2. El despachador comprueba la URL de la petición (/pasteles/comprar), y le pasa la petición al controlador adecuado.
  3. El controlador realiza lógica de aplicación específica. Por ejemplo, puede comprobar si Ricardo ha iniciado sesión.
  4. El controlador también utiliza modelos para acceder a los datos de la aplicación. La mayoría de las veces los modelos representan tablas de una base de datos, aunque también podrían representar entradas LDAP, canales RSS, o ficheros en el sistema. En este ejemplo, el controlador utiliza un modelo para buscar la última compra de Ricardo en la base de datos.
  5. Una vez que el controlador ha hecho su magia en los datos, se los pasa a la vista. La vista toma los datos y los deja listos para su presentación al usuario. La mayoría de las veces las vistas en CakePHP vienen en formato HTML, pero una vista tan fácilmente podría ser un PDF, documento XML, o un objeto JSON dependiendo de sus necesidades.
  6. Una vez que el objeto encargado de procesar vistas en CakePHP ha utilizado los datos del controlador para construir una vista completa, el contenido es devuelto al navegador de Ricardo.

Casi todas las peticiones a su aplicación seguirán este patrón básico. Vamos a completar algunos detalles específicos de Cake más adelante, así que por favor mantenga esto en mente a medida que avanzamos.

Beneficios

¿Por qué utilizar MVC? Porque es un patrón de diseño de software de eficacia probada, que convierte una aplicación en un paquete mantenible, modular y desarrollado rápidamente. Elaborar las tareas de la aplicación en distintos modelos, vistas y controladores hace que su aplicación sea muy ligera sobre sus pies. Las nuevas características se añaden fácilmente, y las nuevas caras para las características viejas son hechas en un chasquido de dedos. El diseño modular y por separado también permite a los diseñadores y desarrolladores trabajar simultáneamente, incluyendo la capacidad de hacer un prototipo rápidamente. La separación también permite a los desarrolladores hacer cambios en una parte de la aplicación sin que ello afecte a las demás.

Si usted nunca ha construido una aplicación de esta manera, toma algún tiempo acostumbrarse, pero nos sentimos confiados de que una vez que haya construido su primera aplicación CakePHP, no va a querer regresar.