Ver Mensaje Individual
  #15 (permalink)  
Antiguo 14/08/2003, 09:14
Avatar de Webstudio
Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Cita:
Mensaje Original por Manoloweb
Así a grandes razgos, y con mi entendimiento previo... sería algo así???

Modelo.- BD, Textfiles, XML

Vista.- CSS, XSL, HTML

Controlador.- PHP, ASP, Javascript


Entiendo bien???
No, en realidad no es así como lo comentás, ni tampoco como lo explica Mickel. La idea del MVC es la de separar tus aplicaciones en varios Objetos o unidades bien definidas, y con funcionalidades determinadas. Para que ? Bueno.. para que el objeto sea más pequeño, sea específico a una tarea, por ende más simple y más sencillo de mantener.

El Modelo : Es el Objeto encargado de representar la funcionalidad de algo específico. Podemos suponer, que en este caso podría ser un Libro de Visitas. Entonces, el "modelo" de un libro de visitas, sería el encargado de tener los métodos que operan sobre un libro de visitas : obtener los X ultimos registro, ingresar registros nuevos, editar un registro, etc.

La Vista : Es el objeto encargado de representar de una cierta manera, a un Modelo. La manera en que esto se hace depende de la interfase que se esté utilizando. Por ejemplo, podemos tener un objeto GuestbookViewHTML que se encargue de mostrar el libro de visitas como HTML, o el objeto GuestbookViewXML que se encargue de mostrar al Libro de visitas como XML válido. Así, cada objeto "vista" decide como mejor le parezca, el métdo en el que crea la vista.

El Controlador : Es lo que se conoce (a veces) como Middleware. Es el objeto encargado de recibir las peticiones del usuario, ( ya sea por linea de comandos, por un URL, por un socket ), y en base a esas peticiones, instanciar los objetos modelos que sean necesarios, trabajar con ellos, instanciar las vistas que sean necesarias, pasarles los datos que el modelo genera, y mostrar los resultados que la Vista genera.

Ahora... estos tres tipos de objetos, no son los únicos que existen en un ambiente MVC, también podríamos enumerar a los Dispatcher ( un objeto que el Controlador puede utilizar para saber que Modelo instanciar y lanzar ) o a los DAOs ( Data Access Objetcs, objetos encargados de encapsular los Querys o el método para acceder a la base de datos o a la "fuente" de datos, mejor dicho ) que son utlizados por los Modelos para obtener los datos desde la fuente que sea necesaria (BBDD, XML, Archivos, SOAP, XML-RPC, lo que sea).

Entonces.... esta es una mini-mini-introducción al modelo MVC, que no es propio de PHP, sino que fue creado en SmallTalk y luego portado a Java, C++, PHP y cualquier lenguaje que soporte decentemente un modelo de Objetos.

Es por eso que si uno pusiera HTML en el Modelo, como indicaba lado2mx, todo el modelo quedaría inservible, ya que pasaría a ser solamente una aplicación para web. Como bien he dicho antes, esto está bien cuando sabemos que así será, pero para aplicaciones más complejas, no siempre es cierto. Así que para los que programen objetos y quieran aprenderlo a hacerlo bien, recuerden que toda salida a la pantalla, al menos haganla con 1 vista, que se encargue de generar el HTML, y que el objeto encargado de las funcionalidades, quede tan simple como sea necesario (pero no más simple que lo necesario).

Saludos.

PD : Ya me parece que se hace necesario un Foro de PHP Avanzado...
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com