Ciao a tutti, dopo un po' di tempo passato a studiare l' MVC e Codeigniter, sto cercando di capire l' HMVC (link). L'idea dei moduli è grandiosa, tuttavia non riesco a capirne alcuni utilizzi pratici.
Per esempio, capisco che possa essere molto utile per creare dei "widget", come può essere un calendario, mi creo il modulo calendario (con relativi controller, viste ecc) e poi richiamo il controller del modulo che visualizza il calendario, magari in un div nella vista del template principale del sito. In questo modo posso tenere separato il modulo "calendario", dal resto dell'applicazione e semplicemente copiarlo/incollarlo in un altro progetto.
Tuttavia se voglio crearmi un modulo, ad esempio, "Utenti", non so bene come comportarmi. Per esempio, il mio modulo si occupa di gestire gli utenti (login, logout,registrazione), e prendiamo in esame la registrazione. Il mio modulo contiene già controller, modello, e vista per interagire con il form, validare, processare e inserire nel database. Ammettiamo che io abbia quindi un controller tipo:
Codice PHP:
<?php
class Utenti extends MX_Controller
{
function __construct()
{
parent::__construct();
//carica librerie/modelli necessari
}
function mostra_form_registrazione()
{
//chiama la vista con il form di registrazione
}
function verifica_form_registrazione()
{
//verifica i dati del form
//se i dati sono validi li inserisco nel dbase_add_record
//carico la vista adeguata (registrazione riuscita o registrazione non riuscita)
}
}
Ammettiamo che abbia un tasto "registrazione" da qualche parte nel mio sito. Posso linkare direttamente al tasto "registrazione" il controller del modulo tipo:
<a href="<?php echo site_url('utenti/mostra_form_registrazione) ?>"> Registrati! </a>
Trattandolo come se fosse un controller normale dell'applicazione? Oppure devo creare un controller in application/controller, e da lì richiamare il controller del modulo "Utenti"?
Forse sembrano domande sceme, però non riesco a capire come e quando bisogna creare e usare i moduliXD Inoltre non capisco che tipo di gerarchia ci sia tra i vari moduli, se qualcuno mi sa dare qualche dritta o qualche link con esempi pratici,sarebbe apprezzato, almeno inizio a capirci qualcosa :)
edit- dopo aver fatto qualche prova, sembra che posso accedere al controller del modulo come se fosse un controller qualsiasi!