Avere metodi statici perché hai bisogno di una sola istanza è una scusa terribile. Stai introducendo lo stato globale, che è cattivo e incasina il test dell'unità.
Se hai davvero bisogno di una sola istanza dell'helper, crea un contenitore con un metodo come createAndReturnHelper
che agirà come un singleton debole, pigro caricando la classe se non è preimpostato e / o restituendo in altro modo l'istanza già creata . Se hai bisogno dell'aiuto nel tuo controller, assicurati di iniettarlo usando il contenitore per ottenere l'helper da esso.
Questo risolve i metodi statici.
Se vuoi che la vista chiami i metodi di helper direttamente o meno, dipende principalmente da te, anche se mi ha dimostrato che l'approccio migliore è fare tutta la logica all'interno del controller, filtrare i dati, trovare le cose giuste e includi nella vista solo PHP molto semplici, come il ciclo foreach
e le variabili, ovviamente. Variabili, che contengono i dati corretti.
Il punto principale nel far sì che la vista non contenga alcun codice php complicato è che i progettisti di frontend di solito non hanno una profonda conoscenza del / dei linguaggio / i di programmazione, e in realtà non lo sono, si concentrano sul frontend, quindi tu può dire loro se si itera sulla variabile $x
, conterrà tutti i dati necessari. Il team di back-end si assicurerà che i dati siano corretti, quindi limitati a ridisegnarli per l'utente finale in un modo piacevole.