Ver Mensaje Individual
  #14 (permalink)  
Antiguo 08/02/2013, 15:41
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: Problema aplicando MCV con PHP

Yo utilizo mi propio sistema de plantillas (link en mi firma).No creo controladores y luego voy a la vista.Porque, repito, en html generado por el servidor, ese patrón no existe.Porque en MVC, la "V" se relaciona con un objeto, a través del controlador, y es independiente del estado de las otras vistas de otros objetos.Pero http *no tiene estado*, por lo que cualquier petición no sólo tiene que crear su propio UI, sino reconstruir el estado de cualquier otro UI existente.

Un ejemplo: supón una página que tiene un listado de elementos, paginados, de tal forma que cuando haces "click" en un elemento, se agrega a una lista que aparece debajo del listado.
Los links de paginación del listado, no sólo contienen parámetros propios de esa vista (la página a la que ir), sino que, para poder reconstruir el estado, dichos links tienen que incluir qué elementos ya has seleccionado.
Este tipo de interdependencia sería impensable en un MVC puro, donde cada vista mantiene su estado, a través del controlador.

No se pide "ver" una vista de un objeto, nunca.Lo que llamas "cabecera","pie", etc, son
también vistas.Si en la cabecera hay, por ejemplo, una caja de login, ésta corresponde a una vista del objeto Usuario.Si en tu pie de página hay un mapa del sitio, es otra vista más.
De hecho, en la mayor parte de los frameworks MVC, la "V" está llena de elementos extraños, como "helpers","snippets",etc,etc,
No hay que perder de vista que MVC no es algo inventado para el desarrollo web (y, si así fuera, un concepto tan crucial como "página" no se habría "perdido").MVC es algo que se ha intentado adaptar para el desarrollo web, para que existiera *algún* paradigma, en un mundo donde no había ninguno.Pero que se adapte bien, y que sea la mejor solución, está por ver.MVC se adapta mejor a un desarrollo javascript + REST, por ejemplo (véase extjs).
Para mí, el modelo de negocio de un sistema (por ejemplo, si estás creando una tienda, el modelo de negocio son los productos, el inventario, el objeto compra,factura,etc), es una estructura orientada a objetos, hasta cierto punto MVC.Y ese modelo de negocio, *es independiente de html*.Es una estructura que puedes acceder por REST,por SOAP, por donde sea.La generación de páginas web para mostrar datos de dicho modelo de negocio, no tiene por qué ser una estructura MVC.Tiene que ser orientada a generar documentos, y de la forma más eficiente posible.
Por ello, en las plantillas, me centro en generar documentos, y no son los "objetos" los que mandan (recogen datos y *luego* usan plantillas).Justo al revés.Las plantillas usan los objetos y las vistas de objetos cuando ellas las necesitan.
Es algo mucho más natural cuando lo que generas son páginas.

Por supuesto, todo lo anterior es simplemente mi experiencia y mi opinión, no una verdad absoluta.