Як встановити підключення до БД у фреймворку Yii2

Як встановити підключення до БД у фреймворку Yii2

Просте і тривіальне завдання, з яким може зіткнутися початківець Yii2 розробник. Почнемо з того, що в залежності від конфігурації проєкту, БД може налаштовуватись по-різному. Візьмемо два варіанти, які нам пропонує сам фреймворк:

  1. basic (простий варіант)
  2. advanced (просунутий варіант)

В обох варіантах, налаштування БД (вказання префіксу/tablePrefix, імені/username, паролю/password, dsn та іншого) виконується однаково. Все залежить від місцезнаходження файлу та «конектора» класу роботи з БД. У нашому прикладі ми розглядатимемо взаємодію з базою даних MySQL, як однією з найпопулярніших.

Якщо брати basic, то конфігураційний файл підключення можна знайти за адресою — «/config/db.php».

З advanced варіантом трохи складніше (на те він і просунутий, тобто для великих проєктів). Тут може бути більше одного файлу налаштувань БД (для розділів — backend, frontend тощо). Все залежить від того, як спочатку ви сконфігурували свій застосунок. Оскільки адмінка та користувацька частина часто працюють з однією базою, то файл налаштувань я зазвичай розміщую в каталозі — «/common/config/db.php». А в конфігурації «/common/config/main.php» прописую доступ до вищезгаданого файлу. Таким чином і в backend, і в frontend підключення до БД автоматично «підтягнеться».


В обох варіантах налаштування ідентичне і виглядає наступним чином:

return [
	'class' => 'yiidbConnection',
	'dsn' => 'mysql:host=127.0.0.1;dbname=my_db_name',
	'username' => 'root',
	'password' => '',
	'charset' => 'utf8',
	'tablePrefix' => 'my_',
];

Де:
class — клас-конектор для підключення до БД
dsn — хост (host) і назва БД (dbname)
username — користувач БД
password — пароль користувача
charset — кодування БД
tablePrefix — префікс таблиць (тобто yii2 table prefix)

Ось і все, не так уже й складно. Успіхів!

Пости на схожі теми

З вашим сайтом на фреймворку Yii2 проблеми? потрібний додатковий функціонал?
Тоді напишіть мені через форму зворотного зв'язку, і я постараюся вам допомогти.

Напишіть коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *