我不明白:他们说,制作一个实例化数据库和会话的“基本控制器”是好的:
// 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`);
所以我只是像任何其他控制器一样创建一个控制器类,然后让我所有其他“真正的”控制器继承这个控制器,这样他们就有了数据库连接和用户会话?
答案 0 :(得分:2)
在Kohana中,我在我的模型中完成了所有数据库工作。您可以通过执行
来获取模型中的DB对象$this->db
许多其他对象也是如此,例如$this->uri
。我对MVC模式的实现意味着我的所有数据库工作都在我的模型中,我不确定这是否是最好的方法,但它对我有用。
对于会话,您始终可以使用静态方法来获取像
这样的单例$mySession = Session::instance();
我很确定所有/大多数助手/库都有类似的使用方法 - 从$ this启动它们或使用静态方法。