Как выглядит настройка базы данных и сеанса в Kohana? - PullRequest
2 голосов
/ 09 июня 2009

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

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

Итак, я бы просто сделал класс контроллера таким же, как любой другой контроллер, а затем просто позволил бы всем моим «настоящим» контроллерам наследовать от него, чтобы у них было соединение с базой данных и сеанс пользователя?

1 Ответ

2 голосов
/ 09 июня 2009

В Kohana я делаю всю свою работу с БД в своих моделях. Вы можете получить объект БД в модели, просто набрав

$this->db

То же самое относится ко многим другим объектам, например $this->uri. Моя реализация шаблона MVC означает, что вся моя работа с БД выполняется в моих моделях, я не уверен, что это лучший способ сделать это, но он работает для меня.

Что касается сессий, вы всегда можете использовать статические методы, чтобы получить синглтон, такой как

$mySession = Session::instance();

Я почти уверен, что все / большинство помощников / библиотек имеют одинаковый способ их использования - инициируйте их из $ this или используйте статический метод.

...