Sto creando una libreria di oggetti di visualizzazione per la nostra applicazione. Rendono l'html di molti oggetti comuni (utenti, conversazioni, messaggi, ecc.) In varie viste. Per punti di vista intendo l'oggetto può sputare indietro diversi 'livelli di zoom' di se stesso con marcature diverse.Zend Framework - Quando utilizzare viewscripts/partial vs view helpers
Alcuni oggetti di visualizzazione contengono altri oggetti di visualizzazione per il rendering ad es. un oggetto lista utente esegue il rendering degli oggetti utente in una determinata vista (questa particolare vista li sputa di nuovo negli elementi elenco in modo che rientrino nell'elenco)
Sto provando a spostarli nel modo corretto di fare le cose in ZF, ma Non riesco a decidere se questi dovrebbero essere tutti gli helper di visualizzazione, o se sono tutti gli script di visualizzazione/parziali.
La semplice visualizzazione degli script e il loro rendering con -> render() sembrano un po 'sporchi perché qualsiasi informazione o parametro che voglio passare ad essi deve essere assegnata all'oggetto della vista.
I parziali sembrano un po 'più corretti, tranne che non sono sicuri se è opportuno eseguire la logica di visualizzazione in questi (se' showNotificationStatus 'è passato come parametro, renderizza questo intervallo). O se il suo kosher per partial per rendere altri partial (una lista di utenti che rende l'oggetto utente).
Vedere gli helper sembra possibilmente il modo giusto per farlo, ma non so se questo è un uso eccessivo degli helper della vista. Ogni oggetto può essere un helper della vista e accettare un parametro objectview in modo che sappia quale livello/contenitore di zoom deve essere visualizzato, oppure ogni objectview potrebbe persino essere il proprio helper (quindi non c'è una grande istruzione switch all'interno di un oggetto). Una cosa bella delle viste è che puoi passare i parametri e ha ancora accesso al contesto della vista se hai bisogno di qualcosa da quel livello.
La maggior parte di questi accetterà modelli, con alcuni che richiedono alcuni parametri aggiuntivi per sapere cosa fare (ad esempio showNotificationStatus dall'alto). Qual è lo strumento adatto per questo?
Bryan Penso che questa sia davvero una buona informazione. Qualche possibilità di elaborare un po '? Supponiamo che tu abbia un oggetto business che può essere rappresentato in diversi livelli di zoom (di dettaglio). Hai un aiutante, che rende diversi parziali in base a un parametro che passi? Molti aiutanti con parziali corrispondenti? Fondamentalmente stai guardando in generale una relazione 1 a 1? Ed è bello per i partial fare leva su altri helper? (Immagina una conversazione, che contiene un elenco di utenti al suo interno. Devi rendere gli utenti all'interno della conversazione parziali.) –
Ho aggiunto alla mia risposta sopra un esempio. Nel mio esempio, uso gli aiutanti per controllare i partial, ma non vedo perché non potremmo farlo viceversa. Preferisco semplicemente mantenere il mio codice HTML libero dalla logica del php che posso. –
Eccezionale. Grazie mille, Bryan! –