I punti migliori di HMVC

0

Sono nuovo di HMVC e anche se i tutorial sono ottimi per gestire i dettagli generali di tenere separati i moduli e lasciare che i controllori comunichino, non sono così bravi a spiegare i piccoli dettagli di cosa dovrebbe andare dove.

Questo è un esempio al quale sono attualmente confrontato. Uso Kohana come framework e costruisco un pannello di controllo di amministrazione per un sito Web. La prima cosa che ho fatto è impostare la pagina. Tutte le pagine di amministrazione sono nel controller di amministrazione, ogni pagina è un'azione. Va tutto bene e ho creato una pagina di accesso di base basata sul sistema Auth di Kohana.

Ora arrivo alla mia prima pagina corretta, la pagina degli account. È necessario elencare tutti gli account con collegamenti per crearne di nuovi e modificare / eliminare quelli esistenti. Abbastanza semplice, ho una vista per la pagina e poi creo un nuovo modulo per un account. Ma poi ecco dove le esercitazioni mi hanno deluso, quando ho bisogno di recuperare un elenco di tutti gli account. In base alla progettazione, il nuovo modulo dovrebbe essere una singola istanza di un account, quindi quando caricherò tutti gli account, avrò una serie di istanze, una per ciascun account. Ma dov'è questo array? Creo una fabbrica che controlli questo e, in caso affermativo, dove si trova la fabbrica nella struttura HMVC?

Supponendo che sia risolto e che il mio array di account sia disponibile per il controller di pagina, e se durante il caricamento di questi account dovessi filtrarli? La maggior parte delle pagine che elencano account o prodotti o qualcosa del genere avranno una ricerca in alto. Ora la ricerca è parte della pagina, quindi dovrebbe appartenere al controller admin, giusto? Quindi, come posso ottenere queste informazioni sul modello degli account quando caricano tutti quegli account?

Prima di HMVC avrei appena scritto la clausola where della query nel controller admin e l'ho passata al modello degli account, ma questa non è un'opzione in HMVC in quanto il controller admin non dovrebbe avere alcuna conoscenza della struttura dei conti . Quindi ora faccio passare i risultati della ricerca come variabili nel controller degli account? Il controller degli account carica queste informazioni direttamente da GET / POST (anche se la ricerca appartiene al controller admin)? Qual è il modo riconosciuto di gestirlo in HMVC?

Ho taggato questo PHP perché è quello che sto usando, e apprezzerei qualsiasi esempio di essere in PHP.

    
posta Styphon 19.09.2014 - 16:19
fonte

1 risposta

0

Potrebbe aiutare se si tiene a mente che c'è una distinzione tra la creazione di un oggetto e l'uso di quell'oggetto. Il primo è un accoppiamento più libero rispetto al secondo.

Con il tuo esempio specifico, mi aspetterei di vedere un AccountsController (nota il plurale) che sa quanti account ci sono e crea una vista che determina dove si troverà ogni singola vista dell'account e le sue dimensioni. Questo controller gestirà anche la vista di ricerca e un array di AccountController s. Ovviamente, questo controller plurale in realtà non crea viste individuali dell'account. Lo lascia ai suoi controllori figli.

Quando il controllore plurale crea i suoi controllori secondari, passa le informazioni sul modello appropriato al bambino. Questi dati modello potrebbero essere un account o forse solo un ID account. È responsabilità del controllore del bambino utilizzare correttamente l'account o magari anche creare / recuperare un nuovo oggetto account in base alle informazioni fornite.

    
risposta data 08.07.2017 - 21:20
fonte

Leggi altre domande sui tag