2009-06-09 7 views
2

私はこれを取得しない:データベースとのセッションをインスタンス化する「ベースController」を作るために良いですが、彼らは言う:Kohanaのデータベースとセッションの設定はどのようになっていますか?

// 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`); 

だから私はちょうど、他のコントローラのようなコントローラクラスになるだろう、と他のすべての「実際の」コントローラーを継承して、データベース接続とユーザーセッションを持つようにします。

答えて

2

Kohanaでは、私のモデルですべてのDB作業を行います。あなただけの一例$this->uriのために、他のオブジェクトの多くは

$this->db 
同じ

行くかを実行して、モデル内のDBオブジェクトをつかむことができます。私のMVCパターンの実装は、すべての私のdb作業が私のモデルにあることを意味しますが、これを実行する最善の方法であるかどうかはわかりませんが、それは私にとってはうまくいきます。それらを開始 -

セッションとして、あなたはいつも私がヘルパー/ライブラリのすべて/ほとんどは、それらを使用して、同様の方法を持っているかなり確信している

$mySession = Session::instance(); 

のようなシングルトンを取得するには、静的メソッドを使用することができます$ thisから取得するか、静的メソッドを使用します。

関連する問題