(k.b sò che tu utilizzi code igniter e tu sei uno dei pochi mi puoi dare un suggerimento/indirizzo)
Sto iniziando ad utilizzare il framework code igniter e lo trovo molto semplice da utilizzare.
Tuttavia data la mia esperienza minima con l'MVC mi sorgono dei dubbi per la gestione del layout. Non mi interessa il "farlo funzionare" (su questo nn ho problemi) sono piuttosto interessato alle best pratices.
Immagginiamo che un sito sia "scomponibile" in: header - content - sidebar - footer (una cosa tradizionale insomma...).
In questi casi le parti comuni a tutte le pagine del sito possono avere degli elementi dinamici.
Ad esempio potrei avere una sidebar che viene richiamata in tutte le pagine con il medesimo contenuto dinamico.
/view/sidebar.php
Codice PHP:
<ul>
<?php foreach($siti_amici as $amici) : ?>
[*]
<?php anchor( $amici['url'], $amici['anchor_text'] ); ?>
<?php endforeach; ?>[/list]
Nel controller avrò pertanto
Codice PHP:
<?php
class Page extends CI_Controller {
public function index(){
$data = array();
// etc etc ...
$this->load->model('siti_amici_model');
$data['siti_amici'] = $this->siti_amici_model->GetSitiAmici();
// etc etc ...
$this->load->view('siti_amici', $data);
// etc etc ...
}
}
Essendo che questa sidebar è presente in tutte le pagine questo approccio mi costringerebbe a istanziare in tutti i controller-function il model siti_amici_model ed il metodo GetSitiAmici().
Ripetere sempre lo stesso codice in linea di principio non è corretto: allora come si opera?
Io avrei una mezza idea ma la cosa non mi convince per nulla...