Estoy creando una biblioteca de objetos de visualización para nuestra aplicación. Representan el html de muchos de los objetos comunes (usuarios, conversaciones, mensajes, etc.) en varias vistas. Por vistas quiero decir que el objeto puede escupir diferentes "niveles de zoom" de sí mismo con diferentes marcas.Zend Framework: cuándo usar viewcripts/parciales vs view helpers
Algunos objetos de visualización contienen otros objetos de visualización para representar, p. Ej. un objeto de la lista de usuarios representa los objetos del usuario en una vista determinada (esta vista particular los escupe en los elementos de la lista para que quepan en la lista)
Estoy tratando de moverlos a la forma correcta de hacer las cosas en ZF, pero No puedo decidir si todos deberían ser ayudantes de vista, o si todos son scripts/parciales de vista.
Solo verlos y representarlos con -> render() parece un poco sucio porque cualquier información o parámetro que quiera pasarles debe asignarse al objeto de vista.
Los parciales parecen un poco más correctos, excepto que no estoy seguro si es apropiado hacer lógica de visualización en estos (si 'showNotificationStatus' se pasa como un parámetro, renderice este span). O si es kosher para parciales para representar otros parciales (una lista de usuarios que representa el objeto del usuario).
Ver los ayudantes parecen posiblemente la manera correcta de hacerlo, pero no sé si eso es demasiado uso de los ayudantes de visualización. Cada objeto podría ser un ayudante de visualización y aceptar un parámetro de vista de objeto para que supiera en qué nivel de zoom/contenedor se debe renderizar, o cada vista de objeto podría ser incluso su propia ayuda (para que no haya una gran declaración de conmutación dentro de un objeto). Una cosa buena de las vistas es que puede pasar parámetros y todavía tiene acceso al contexto de la vista si necesita algo de ese nivel.
La mayoría de estos aceptan modelos, y algunos requieren algunos parámetros adicionales para saber qué hacer (por ejemplo, showNotificationStatus desde arriba). ¿Cuál es la herramienta adecuada para esto?
Bryan Creo que esta es realmente una buena información. ¿Alguna posibilidad de que puedas elaborar un poco? Supongamos que tiene un objeto comercial que puede representarse en varios niveles de zoom diferentes (de detalle). ¿Tiene un ayudante, que rinde parciales diferentes en función de un parámetro que pase? Muchos ayudantes con parciales correspondientes? Básicamente, ¿estás mirando generalmente una relación 1 a 1? ¿Y es genial para los parciales aprovechar a otros ayudantes de visualización? (Imagine una conversación, que contiene una lista de usuarios dentro de ella. Necesito hacer que los usuarios dentro de la conversación sean parciales). –
Agregué a mi respuesta a una anterior con un ejemplo. En mi ejemplo, uso ayudantes para controlar parciales, pero no veo por qué no podrías hacerlo al revés. Solo prefiero mantener mi HTML lo más libre posible de la lógica php. –
Excepcional. ¡Muchas gracias Bryan! –