Как установить подключение к БД в фреймворке 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 проблемы? нужен дополнительный функционал?
Тогда напишите мне через форму обратной связи, и я постараюсь вам помочь.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *