il framework PHP che sto usando (Kohana) ha recentemente implementato l'architettura HMVC. Ho letto che si tratta di un mvc a strati in cui le richieste sono fatte l'una sull'altra. È un po 'come ajax, solo lato server. L'ho applicato un po 'su alcuni esperimenti, ma non posso applicarlo a nessuno dei miei progetti (perché non riesco a trovarne il bisogno). Hai mai usato HMVC in un progetto prima? Come ti ha aiutato?Per cosa posso usare l'architettura HMVC?
risposta
E 'un po' come ajax, appena puramente di server -lato.
Questa è una buona analogia.
HMVC è bello per l'aggiunta di widget alle pagine - bit di contenuto modulari che riutilizzerete in poche pagine. Ad esempio, un widget del carrello. Potresti fare la stessa cosa in diversi modi:
- Una biblioteca. Siamo abituati a spostare il codice riutilizzabile da un controller in una libreria. Quindi, dal controller, è possibile caricare i risultati di una chiamata in tale libreria in una variabile di visualizzazione.
- Una vista. È possibile caricare una vista (parziale) dalla vista principale. Questa vista parziale potrebbe attirare il contenuto dai modelli. Chiamare i modelli dalle viste non è sempre popolare ma non è necessariamente sbagliato.
Tuttavia, Kohana HMVC ha alcuni vantaggi:
- Coerenza - richieste HMVC vengono trattati come richieste HTTP esterni.
- Alimentazione: le richieste HMVC hanno le stesse risorse Kohana delle richieste HTTP, inclusi i percorsi.
- Pluggability - Quando chiamato da una vista, una richiesta HMVC non ha un accoppiamento tra il controller (che assegna i risultati della libreria a una vista) e un segnaposto di vista. Si tocca solo un file anziché due.
Sto iniziando ad apprezzare il caso di HMVC e la scalabilità con le richieste http collegate da Kiall. La stessa cosa potrebbe essere fatta con CURL. Tuttavia, potrebbe essere più naturale progettare con Kohana HMVC che CURL dall'inizio.
il link all'articolo sopra è buono, ma questo presenta una risposta breve ma concisa. Grazie! – yretuta
Bene - Sam de Freyssinet (aka samsoir), uno degli sviluppatori di Kohana, ha recentemente pubblicato un articolo che tratta questa domanda.
http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/
Mentre la sua non è l'unico uso per HMVC - Si tratta di uno dei suoi usi più popolari. L'articolo riguarda principalmente la scalabilità (come in, il numero di richieste al secondo) ma la scalabilità del codice (come in, quanto facile/difficile è il codice da mantenere) può essere "risolta" con le stesse idee ..
Hope questo aiuta :)
(Nota a margine - i suoi esempi di codice si basano su cambiamenti personali di Sam a Kohana - vedi la nota alla fine di questo articolo)
In realtà ho appena notato che la data nell'URL è oggi .. buon tempismo :) – Kiall
In un progetto semplice non si potrebbe nemmeno trovare un reale utilizzo per il modello architettonico HMVC. E non dovresti nemmeno provarci. Ecco perché:
L'intero punto nel creare un'architettura HMVC era rendere MVC un po 'DRY'er. Uno dei principali vantaggi di HMVC è il riutilizzo del codice.Ti consente di avere frammenti che si ripetono su tutta la tua applicazione (a volte nello stesso punto, altre volte - no).
Se si sta scrivendo come applicazione di prova piccola, non ci saranno frammenti ripetibili. Pertanto, non è necessario utilizzare il potenziale HMVC completo. Ti ritroverai con 1 livello di HMVC, che è MVC standard.
Here you can read the original publication, which introduced HMVC. Nel 2000.
+1, di recente sono passato a Kohana da Code Igniter e mi stavo chiedendo la stessa cosa. –