Как выглядит настройка базы данных и сеанса в Kohana?

StackOverflow https://stackoverflow.com/questions/969252

  •  13-09-2019
  •  | 
  •  

Вопрос

Я этого не понимаю:Они говорят, что хорошо бы создать "Базовый контроллер", который создает экземпляр базы данных и сеанса:

// 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 или используйте статический метод.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top