I don't get this: They say, it is good to make a "Base Controller" that instantiates the database and session:
// 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`);
So I would just make a controller class like any other controller, and then just let all my other "real" controllers inherit from this one, so that they have a database connection and a user session?