2010-06-10 15 views
5

Quindi, penso di capire il file system a cascata nei suoi termini di base, ma non riesco a capire la struttura di H'ierachy del MVC. Qualcuno potrebbe dirmi i vantaggi dell'utilizzo di HMVC su MVC e delle sue funzionalità di base?La struttura HMVC di Kohana 3.0 in termini profani?

Grazie per il vostro tempo!

risposta

5

HMVC è più adatto ai widget. Ad esempio, un widget di Calendar può avere il proprio controller, modelli e set di viste e si può semplicemente chiamare il suo controller per rendere una determinata vista dalla pagina principale per incorporare il widget.

L'enfasi è sugli elementi GUI riutilizzabili. Vedi qui per ulteriori letture: http://www.javaworld.com/javaworld/jw-07-2000/jw-0721-hmvc.html.

Modifica: questo è un vero collegamento incentrato sul PHP: http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/. Sembra avere anche illustrazioni più belle.

+0

Diresti quindi di utilizzare semplicemente un framework MVC per un sito Web di dimensioni maggiori? –

+1

Le persone dicono che HMVC è più scalabile, ma dipende da come è il tuo sito. Solo perché un sito è di grandi dimensioni non significa che abbia dei widget, o viceversa. –

5

È possibile effettuare una richiesta per una pagina (il controller e l'azione vengono trovati dai percorsi) interni. Si può fare questo ad esempio:

class Controller_Menu extends Controller 
{ 
    public function action_index() 
    { 
     $this->request->response = view stuff ... 
     $this->request->response->set('...', ...) // some vars 
    } 
} 

e

class Controller_Home extends Controller 
{ 
    public function action_index() 
    { 
     $this->request->response = ...; // some view stuff... 
     $this->request->response->set('menu', 
      Request::factory('menu')->execute()->response // here happens the magic 
     ); 
    } 
} 

Ogni pagina che haves un menu non devi fare tutta la logica per caricare il menu, ecc (per esempio dai modelli). Basta fare una richiesta al controller, eseguirlo e ottenere il risultato. Molto utile se usato correttamente.

+0

Penso di averlo capito ora :) In realtà è molto utile. Grazie –

3

Le persone sui forum KO3 hanno descritto l'abilità HMVC come fare una richiesta AJAX senza la richiesta HTTP aggiuntiva.

Un caso del mondo reale, forse, se si vuole costruire un sistema che ha un'API come parte integrante dell'applicazione. Twitter per esempio. Con HMVC è possibile scrivere prima l'API e quindi utilizzarla all'interno dell'applicazione. Ciò consente di salvare la duplicazione del codice o una richiesta HTTP aggiuntiva.

Al momento però, lavorare in questo modo è piuttosto limitato, principalmente a causa del tipo di richieste che possono essere inviate. Here is a forum post that I made a little while ago with regards to this. It may clarify how HMVC could be useful.

Problemi correlati