Как выглядит настройка базы данных и сеанса в 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`);
Итак, я бы просто создал класс controller, подобный любому другому контроллеру, а затем просто позволил бы всем моим другим "реальным" контроллерам наследовать от этого, чтобы у них было подключение к базе данных и сеанс пользователя?
Решение
В Kohana я выполняю всю свою работу с базой данных в своих моделях.Вы можете захватить объект DB в модели, просто выполнив
$this->db
То же самое относится и ко многим другим объектам, например $this->uri
.Моя реализация шаблона MVC означает, что вся моя работа с базой данных выполняется в моих моделях, я не уверен, что это лучший способ сделать это, но у меня это работает.
Что касается сеансов, вы всегда можете использовать статические методы для получения синглтона типа
$mySession = Session::instance();
Я почти уверен, что все / большинство помощников / библиотек имеют схожий способ их использования - инициируйте их из $ this или используйте статический метод.