| Login | Tour | Inicio | Chat | Descargas | Wallpapers | Páginas recientes | FAQ | | ||
Custom Search
![]() Emacs como IDE para CakePHP aarkerio La Negación del Viaje Lunar tonathiu Porque los mononeurones si tenemos madre! blacksoul BrunoFerías thot The Art vendaval Aclimatación extraterrestre ¿para qué? ahuramazdah ¿A que le tienes miedo? teosho Sobre nazis, terror y medios tonathiu Amenazas a la cuarta dimensión ¿de veras? ahuramazdah Tarjeta Broadcom BCM94311MCG rev 02 teosho Pidiendo OpenSolaris 2008.5 vendaval Sospechosismo aarkerio Slackware 12.1 Final vendaval Jaime Maussan da por auténtico video trucado del chupacabras hecho en Blender 3D asarch Linux hot girl aarkerio Calderón puede ser sujeto a juicio político, sostiene Carrancá tonathiu La desnutrición en México aarkerio Sistema Infalible ordbal Histórico aarkerio Nietzsche en la FCPyS aarkerio ![]() GNU/Linux ![]() Hacktivismo ![]() Debian ![]() NetBSD ![]() WWW ![]() Guia Linux ![]() Server Side ![]() Ofimatica ![]() Despabilando... ![]() Mundo Maya ![]() Literatura ![]() Agora ![]() Psicologia ![]() Economia ![]() Ambientalismo ![]() Desarrollo Biologia ![]() |
WWW \ MVC en tres pasos, en PHP y sin objetos Este artículo ha sido consultado en 546 ocasiones. MVC en tres pasos, en PHP y sin objetos (y nada más)MVC significa "Modelo, Vista y Controlador". A grandes rasgos: el Modelo es todo acceso a base de datos, y las funciones que llevan lo que llaman "lógica de negocio". O sea, las funciones más "pequeñas" con significado: ingresar una cantidad, obtener un listado de historias, ... La vista, en una aplicación web, es el HTML (o XML, WAP, PDF, ...) y lo necesario para convertir datos en HTML. El acceso a bases de datos no es vista. La gestión de sesiones no es vista. El controlador es lo que une la vista y el modelo. Por ejemplo, son las funciones que toman los valores de un formulario, consultan la base de datos (a través del modelo) y producen valores, que la vista tomará y convertirá en HTML. 1. M de ModeloLas funciones "con significado" que mencioné antes deberían estar agrupadas lógicamente. O sea, no de una "forma lógica", sino que las que sean parecidas estén juntas. El modelo incluye todas las funciones necesarias para acceder a bases de datos, recursos de la máquina, etc. Estas funciones son de acceso a base de datos. Son funciones muy simples, que por si solas no tienen "significado" fuera de la base de datos:
Estas funciones tienen "significado": son operaciones "reales" sobre cosas "reales":
La principal diferencia es que las primeras son simples operaciones sobre la base de datos, y que las segundas pueden componerse de una o varias llamadas a funciones de acceso a base de datos y, posiblemente, cierta cantidad de "procesamiento". Ejemplo:
RazonesCada acceso a base de datos se pone en su función individual porque, de esta forma, si se cambia de gestor de bases de datos este cambio sólo afecta a estas funciones, no al resto de la aplicación. Tener el modelo bien delimitado permite la existencia de varias aplicaciones que compartan el mismo modelo (por ejemplo, una aplicación "tienda" y una "contabilidad" que accedan a las bases de datos de inventario, ventas, ...) 2. C de ControladorEl controlador no accede (directamente) a la base de datos, ni genera (directamente) HTML; se limita a obtener valores, procesarlos y obtener otros valores (además de la gestión de sesiones, cookies, logs y ese tipo de tonterías). Lo típico es recoger los valores de un formulario, procesarlos, trabajar un poco con la base de datos, procesar algo más, y almacenar el resultado en una o varias variables:
letranovalida.php y listadoproductos.php son parte de la vista. El segundo fichero hace uso de la variable $productos para mostrar el listado. Como se puede ver, el controlador no se mete con HTML; se limita a obtener el listado de la base de datos y pasárselo, tal cual, a la vista. RazonesDe este modo, el código que "hace algo" está perfectamente separado del código dedicado a crear HTML, lo que ayuda a evitar el spaghetti. 3. V de VistaLa vista es la parte de la aplicación dedicada a generar HTML. Puede ser simple HTML estático:
O HTML dinámico generado en respuesta a una consulta, por ejemplo:
La vista no debería llamar a ninguna función; debería limitarse a construcciones de control de flujo simple: if, for/foreach, while, ... Todas las variables empleadas por la vista deberían proceder del controlador; utilizar directamente variables procedentes del usuario es una práctica muy peligrosa. RazonesTener la vista separada del controlador permite cambiar la aplicación para que genere, en lugar de HTML, algo distinto (por ejemplo, WML), sin tener que tocar más que una parte completamente delimitada del código. Básicamente, MVC es esto. Lo demás (objetos, etc) son refinamientos. Jacobo Tarrío Last modified: Tue Dec 3 14:35:55 CET 2002 $Id: mvc.html,v 1.2 2002/12/03 13:36:12 jtarrio Exp $ Última actualización: 2007-04-29 10:56:59-05 |
![]() Preparandome para el viaje a Puerto Vallarta... que triste... 1 hour, 7 minutes ago Du hast? 5 hours, 10 minutes ago Ich habe einen Kater, aber nicht so schlecht... 12 hours, 45 minutes ago Y yo un Abrazo. 1 day, 12 hours ago Dandole su habrazote a mi santa madre que me soporta 1 day, 14 hours ago esperando a que este el pozole 1 day, 15 hours ago Que estuvimos haciendo >> 10410 lecturas Sexualidad infantil y juvenil 9166 lecturas Anticoncepción de Emergencia 7840 lecturas Rompiendo cualquier clave WEP en unos pocos minutos 6917 lecturas Sinapsis y exocitosis 6227 lecturas Mi primer CakePHP, mmmmm cakeee 5259 lecturas Evolución filética en las hepáticas 4697 lecturas BASH y Primeros Comandos 4012 lecturas CakePHP II Active Record 3742 lecturas Cómo convertirse en hacker 3619 lecturas
|
| ||
| Hasta donde puedo recordar, no hay una sola palabra en los Evangelios en alabanza de la inteligencia. B. Russell | ||
| Este trabajo está licenciado bajo la MonoNeurona Commons License. 2002-2008 © :: Colectivo MonoNeurona.org :: | ||