Domanda

il framework PHP sto usando (Kohana) recentemente implementato l'architettura HMVC. Ho letto che si tratta di un MVC a strati in cui le richieste sono fatte l'uno sopra l'altro. E 'un po' come ajax, appena puramente sul lato server. Ho applicato un po 'su alcuni esperimenti, ma non posso applicarlo a nessuno dei miei progetti (perché non riesco a trovare un bisogno di esso). Hai mai usato HMVC in un progetto prima? Come ti ha aiutato?

È stato utile?

Soluzione

  

E 'un po' come ajax, appena puramente sul lato server.

Questa è una buona analogia.

HMVC è piacevole per l'aggiunta di widget per le pagine - pezzi modulari di contenuti che ti riutilizzare in poche pagine. Ad esempio, un widget di carrello della spesa. Si potrebbe fare la stessa cosa in modi diversi:

  1. Una biblioteca. Siamo abituati a spostare codice riutilizzabile da un controller in una libreria. Poi, dal controller, è possibile caricare i risultati di una chiamata a tale libreria in una variabile vista.
  2. Una vista. È possibile caricare una vista (parziale) dalla visualizzazione principale. Che vista parziale potrebbe tirare in contenuto da modelli. Chiamata modelli da vista non è sempre popolare, ma non è necessariamente sbagliato.

Tuttavia, Kohana HMVC ha alcuni vantaggi:

  1. Coerenza - richieste HMVC vengono trattati come richieste HTTP esterni
  2. .
  3. Potenza -. Tutte le richieste HMVC hanno le stesse risorse Kohana come richieste HTTP tra cui percorsi
  4. Pluggability - Quando viene chiamato da una vista, una richiesta HMVC non ha un accoppiamento tra il controllore (che assegna i risultati libreria per una vista) e un segnaposto vista. Hai solo toccare un file invece di due.

sto iniziando ad apprezzare il caso per HMVC e scalabilità con richieste HTTP come legati da Kiall. La stessa cosa potrebbe essere fatto con CURL. Tuttavia, potrebbe essere più naturale per la progettazione con Kohana HMVC di CURL dall'inizio.

Altri suggerimenti

Bene -. Sam de Freyssinet (aka samsoir), uno degli sviluppatori del Kohana, ha recentemente pubblicato un articolo che fare con questa domanda

http: //techportal.inviqa. com / 2010/02/22 / scala-web-applicazioni-con-HMVC /

Anche se la sua non è l'unico uso per HMVC - Si tratta di uno dei suoi usi più popolari. L'articolo riguarda principalmente la scalabilità (come nel caso, il numero di richieste al secondo), ma il codice di scalabilità (come nel caso, come è facile / difficile è il codice per mantenere) può essere "risolti" con le stesse idee ..

Spero che questo aiuti:)

(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 un progetto semplice si potrebbe anche non trovare un vero e proprio impiego per HMVC modello architettonico. E non si dovrebbe nemmeno provare. Ecco perché:

Il punto nel creare un'architettura HMVC era di fare un po MVC DRY'er. Uno dei principali vantaggi di HMVC è il riutilizzo del codice. Esso permette di avere i frammenti che si ripetono in tutta l'applicazione (a volte in stesso posto, altre volte - e non).

Se si sta scrivendo il più piccolo applicazione di test, non ci sarà alcun frammenti ripetibili. Così, non c'è bisogno di utilizzare tutto il potenziale HMVC. Hai appena finisce con 1 livello di HMVC, che si è standard MVC.

Qui potete leggere la pubblicazione originale, che ha introdotto HMVC. Nel 2000i.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top