In your view scripts, often it is necessary to perform certain complex functions over and over: e.g., formatting a date, generating form elements, or displaying action links. You can use helper classes to perform these behaviors for you.
zend: view helpers
Tra le altre cose, questo ci dice che un helper vista non è una vista. È un'utilità utilizzata da una vista.
it is not MVC sane and good practice to directly load a Model via Zend Framework's ViewHelper because it is a View related stuff and it should call another controller by a hard acceptance.
Il modello contiene dati. Alcuni di questi dati devono essere visualizzati in una vista. Quindi affermare che questo è solo per "vedere cose correlate" non ti dà un bel taglio netto.
La migliore argomentazione che so contro questo è che una vista non dovrebbe interrogare il modello. È meglio se la vista attende che venga detto che è il momento di aggiornare e cosa visualizzare. La vista non dovrebbe sapere o preoccuparsi se è il modello a dirlo. Questa saggezza non viene da MVC. Viene da segnala, non chiedere .
ViewHelper is being called prior to rendering the view that exists in a .phtml file, so it can call any Model and/or service required.
Ciò rende il ViewHelper
simile a un controller. Se è così che va bene allora. Ma non è quello che dovrebbero fare le utilità utilizzate dalla vista. Se questo è quello che sono dovrebbero preoccuparsi di fornire alla vista i comportamenti necessari per visualizzare i dati che riceve correttamente. E questo è quello che la documentazione di zend sembra dire.
MVC è un modello di progettazione molto vecchio. L'unica cosa coerente delle implementazioni MVC sono le 3 aree di responsabilità. Tutto il resto: comunicazione tra aree, dipendenze, flusso di controllo, sono tutti nell'aria. Dicendomi che stai usando MVC in realtà non mi dice molto. Sano o no.