29 de octubre de 2007

¿Como funciona el modelo MVC en CakePHP?

Voy a trasladar mi primer aprendizaje a una documento que sea facil de entender para todos aquellos que recien empiezan con CakePHP, y que no entiendan el ingles del manual.
La mayoria del texto y la imagen principal salen de esta parte del manual 1.2 de CakePHP.





En el gráfico mostrado arriba, se explica claramente como funciona CakePHP. Para los que no entienden nada de esto (a mi tambien me costo entenderlo), vamos a ver un ejemplo claro.

Antes, les presento a los tres participantes del proceso:

a) El Controlador:


b) El Modelo:


c) La Vista:


Ahora vamos al caso concreto:

Mi amigo Roger esta viendo que su tenis ha bajado de nivel, por lo que quiere comprarse una raqueta nueva. Para eso, ha decidido entrar al sitio www.teniscake.com, sitio que vende raquetas por Internet, obviamente utilizando Cake como sistema. A continuacion, una foto de mi amigo preocupado:


Los pasos que seguiran el Controlador, la Vista y en Modelo para lograr que Roger tenga su nueva raqueta son los siguientes:

Paso 1: Roger encuentra la raqueta que le gusta, y clickea sobre el boton que dice "Comprar". Este boton apunta a la direccion http://www.teniscake.com/racquet/buy...


Paso 2: El despachador analiza la URL solicitada (racquet/buy) y pasa el pedido al controlador adecuado...

Paso 3: El controlador realiza la lógica especifica de la aplicación. Por ejemplo, chequea si Roger ha iniciado una sesión....



Paso 4: El controlador también utiliza a los modelos para acceder a los datos de la aplicacion. Lo mas común es que los modelos representen bases de datos, pero también pueden representar feeds RSS, o archivos en sistemas. En este ejemplo, el controlador utiliza al modelo para obtener las ultimas compras que ha hecho Roger en el sitio web, dato guardado en la base de datos...

Paso 5: Una vez que el controlador ha realizado todos los procesos necesarios sobre los datos, envia los mismos hacia la vista. Esta toma la informacion y la prepara para presentarsela al usuario. Las vistas en CakePHP en la mayoria de los casos son archivos HTML, pero tambien pueden ser documentos PDF, XML, etc...

Paso 6: Una vez que la vista ha utilizado los datos del controlador para armar una presentacion adecuada, el contenido de la vista es retornado al navegador de Roger....



Y hasta aqui llegamos. A simples rasgos, eso es todo. Ahora puedes volver al primer gráfico, y entenderás tecnicamente como funciona esto que he explicado con gráficos no tan técnicos...
Para la próxima, prometo preparar algo que explique mas a fondo como interactuan otros elementos, como componentes, layouts, helpers y comportamientos. Espero que les haya gustado este primer post, y si no les gusto, miren quien se quedo muy contento con su compra...



Saludos, hasta la próxima!

10 comentarios:

walter dijo...

Interesante pedadogía! buen aporte. Saludos

Mario César dijo...

jajajaja ! :D

Te has ganado un lector !

Alrevez dijo...

Y conmigo has ganado otro!

Anónimo dijo...

SOy usuario principiante de cake y la verdad me costo entender estas bases...

Pero tu lo has explicado casi con peras y manzanas! Eres un genio!

Tambien te has ganado otro lector

Anónimo dijo...

hey!

muy bueno el artículo. esperamos más!

un saludo!

KerneL dijo...

Me ha gustado la forma en que explicaste MVC, seguiré leyendo porque también me estoy iniciando en CakePHP.

Saludos.

toleillo dijo...

eres un crack....te has ganado otro lector...GRACIAS!!!

Anónimo dijo...

bueno pues desde Colombia te has ganado uno mas, es lo mejor que he leido de CAKE, Felicitaciones y adelante

Fran dijo...

Excelente Blog, admirable! Muy groso! es una lastima que no hayas seguido con esto. Noto que no volviste a escribir, ¿Se puede saber a que se debe?

mbavio dijo...

Hola, Francisco, como estas?

Un gusto que gente como vos sigan entrando a este post despues de casi 6 años!

Te cuento lo que me paso, me gane la loteria de mi pueblo y con eso me alcanzo para comprarme una isla, asi que abandone la computacion y me dedique al estudio de los invertebrados acuaticos desde la comodidad de mi propia isla!

Pido disculpas a todos lo que esperaban mas de este blog, seguramente surgieron mejores en este tiempo, no sabria decirles porque mi vida es playa, mar y muchisimo tiempo libre!

Saludos!