In che modo la configurazione del database e la sessione assomigliare a Kohana?
Domanda
Non capisco questo: Si dice, è bene fare un "Controller di base" che crea un'istanza del database e la sessione:
// Base Controller code
$this->db = Database::instance($db_group);
$this->session = Session::instance();
// Now in any controller which extends Base Controller
$var = $this->session->get('var');
$query = $this->db->query('SELECT * FROM `table`);
Quindi, vorrei solo fare una classe controller come qualsiasi altro controller, e poi lasciare che tutti i miei altri controller "reali" ereditare da questa, in modo che abbiano una connessione al database e una sessione utente?
Soluzione
In Kohana, faccio tutto il mio lavoro db nei miei modelli. È possibile prendere l'oggetto DB nel modello solo facendo
$this->db
Lo stesso vale per molti degli altri oggetti, per esempio $this->uri
. La mia implementazione del pattern MVC significa che tutto il mio lavoro db è nei miei modelli, non sono sicuro se questo è il modo migliore per farlo, ma per me funziona.
Per quanto riguarda le sessioni, è sempre possibile utilizzare i metodi statici per ottenere un Singleton come
$mySession = Session::instance();
Sono abbastanza sicuro che tutti / la maggior parte degli aiutanti / librerie hanno un modo simile di usarle -. Iniziarli da $ questo o utilizzare il metodo statico