Enlaces
Esta en:

documentos
Arriba
Bind-9
Bind-8
Ad+bind
Dhcp
Kdephp
Shell
Trucos
Php
Documentos
Cuestiones php
Fedora
Legal
W2000 xp
COMOS
Errores dns

Re: [PHP-ES] Re: Duda sobre MVC

Write haof XML files: Xavier Vidal Piera <xavividal_at_gmail.com>
Fecha: Wed, 14 Mar 2007 10:51:21 +0100

Hola

Agradezco tu punto de vista y tu contribución.

Mi pregunta es si la vista puede (debería, mas bien) acceder directamente al
modelo, en lugar de recibir las variables desde el controlador (las
asignaciones tipo $view->datos = $datos)

Ahora mismo no le veo ninguna ventaja al mecanismo de asignar los datos
necesarios para la vista desde el controlador.
En cambio, le veo ventajas a que cada vista (o subcomponentes de la vista si
ésta es un compuesto de vistas) se encargue de recuperar los datos del
modelo que necesite (sin cambiar el estado del modelo, por supuesto).

El controlador lo veo sólo como a un elemento que se encarga de decidir qué
hacer, pero no de recuperar los datos para la vista.

Dada mi duda, no entiendo porqué en componentes como Zend_View existe la
asignación de datos desde el controlador si la vista puede recuperarlos por
sí misma.

2007/3/14, Carlos Medina <medina12_at_web. de>:
>
> Xavier Vidal wrote:
> > Saludos
> >
> > Hasta el dia de hoy, he aplicado el patrón MVC del mismo modo, y
> > recientemente releyendo algunos artículos, veo que quizá no lo he
> aplicado
> > correctamente o de otro modo.
> >
> > Me explico, para las vistas antes utilizaba Smarty, y ahora estoy
> > desarrollando con Zend Framework el cual utiliza PHP (Zend_View) para
> las
> > vistas. Pero el quid de la cuestión está en la separación entre las
> capas
> > del MVC.
> >
> > Lo que hacia hasta ahora es:
> > (ejemplo resumido)
> >
> > CONTROLADOR
> > <?php
> > include 'modelo/usuarios.php';
> > $usuarios = new Usuarios();
> >
> > $tpl = new Smarty();
> > $tpl->assign('usuarios', $usuarios->getUsuarios());
> > $tpl->display('plantilla.php');
> > ?>
> >
> > VISTA
> > {section name=item loop=$usuarios}
> > {$usuarios[item].nombre}
> > ...
> > {/section}
> >
> >
> > Bueno, el tema está en que el controlador es el responsable de consultar
> al
> > modelo acerca de los datos necesarios y éstos son pasados a la vista
> > mediante una asignación (smarty así lo aconseja, y Zend_View también lo
> hace
> > así según la documentación.). En resumen, mis controladores se encargan
> > actualizar y consultar al modelo.
> >
> > Ahora bien, repasando el patrón MVC, he visto que a la vista también se
> le
> > permite acceder al modelo (eso sí, en modo sólo lectura) y recuperar
> datos
> > necesarios sin depender del controlador.
> >
> > Veo que la última aproximación parece ser la más correcta, aunque eso
> > inhabilita a Smarty para ser capaz de comunicarse con el modelo (bueno,
> si
> > se puede, pero haciendo trampa, en mi opinión). Con Zend_View parece más
> > "natural" hacerlo así.
> >
> > ¿Cuál es método que utilizáis vosotros? ¿Os habeis encontrado con
> > situaciones parecidas?
> >
> > Gracias, espero vuestras opiniones/correcciones/collejas...
> >
> >
> > Xavier Vidal Piera
> > Enginyer Tècnic d'Informàtica de Gestió
> > Tècnic Especialista en Informàtica de Sistemes
> > xavividal_at_gmail. com
> > 610 68 41 78
> > http://www.webpersonal.net/redness
> > http://www.myspace.com/xaviervidalmusic
> >
> Hola Xavier,
> yo permito en mis aplicaciones que el view sea un controlador mismo
> (viewController) con el Zend Framework. Esto me permite mas flexibilidad
> al momento de tener que hablar con los modelos y enviar datos a otros
> controladores.
> Para utilizar el View en Zend necesitas instanciar la clase view en:
> $view new Zend_view();
> $view = Zend::registry('view');
> Bueno instanciar la clase se hace mejor al principio en el index.php.
> Luego se registra en el ViewController la view variable y se recolectan
> los diferentes templates para mostrar. Por ejemplo tengo en el
> ViewController varios metodos para mostrar segun sea su tarea:
> administratorAction(), MerchantAction(), AffiliateAction() y asi... En
> cada action pues hago un registro de la variable view y elaboro mi view
> guardando todo en variables como $view->content, $view->modul,
> $view->menu y asi. Eso es lo que saldra al final en el template
> principal que lo nombre main.php. Lo que sale en $view->content por
> ejemplo son una serie de elementos que voy preseleccionando
> adecuadamente con $view->render(' administrator.php'); hasta darle el
> render final y armar todo.
>
> mi contribucion a tu pregunta. Me gustaria saber como lo hacen los demas
> :-)
>
> Salu2
> Carlos
>
> --
> PHP Spanish Localization Talk Mailing List ( http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

-- 
Xavier Vidal Piera
Enginyer Tècnic Informà tic de Gestió
Tècnic Especialista Informà tic d'equips
xavividal_at_gmail.com
610.68.41.78
Nearby mié mar 14 2007 - 12:23:12 CET

Este archivo fue generado por hypermail 2.2.0 : mié nov 07 2007 - 20:55:36 CET


Página Principal
Google

Web
dns.bdat.net

Visita nuestro proveedor:
www.bdat.net

Publicidad:

Impresenteibols:Humor Jazz, música en vivo