Мы создали каркас приложения и закончили со структурой БД. В данном разделе мы создадим саму базу и настроим подключение к ней.
Для создания базы данных мы используем SQLite. Поскольку поддержка баз данных в Yii основана на PDO, мы можем легко переключаться между различными СУБД (например, MySQL, PostgreSQL) без необходимости изменять наш код.
Создаем файл базы данных blog.db
в директории /wwwroot/blog/protected/data
.
И каталог и файл базы данных должны иметь возможность перезаписи процессом
Web-сервера, как этого требует SQLite. Мы можем просто скопировать файл базы
данных с демонстрационной версией блога из установленной копии Yii. Он расположен
в директории /wwwroot/yii/demos/blog/protected/data/blog.db
. Чтобы создать базу
данных вручную, можно выполнить SQL-выражения из файла
/wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql
.
Подсказка: Чтобы выполнить SQL-выражения, необходимо использовать инструмент командной строки
sqlite3
, который может быть найден на официальном Web-сайте SQLite.
Чтобы использовать базу данных блога в нашем приложении, необходимо задать
конфигурацию приложения,
которая находится в PHP-файле /wwwroot/blog/protected/config/main.php
.
Код данного файла возвращает ассоциативный массив, содержащий пары имя-значение,
каждая из которых используется для инициализации свойств
экземпляра приложения.
Добавим новую запись db
в свойство components
:
return array(
......
'components'=>array(
......
'db'=>array(
'class'=>'CDbConnection',
'connectionString'=>'sqlite:/wwwroot/blog/protected/data/blog.db',
),
),
......
);
Конфигурация выше говорит, что
компонент приложения
db
является экземпляром класса CDbConnection со свойством
connectionString
, начальное значение которого
sqlite:/wwwroot/blog/protected/data/blog.db
.
Теперь мы можем использовать подключение к базе данных Yii::app()->db
в любом
месте нашего кода. Заметим, что выражение
Yii::app()
возвращает экземпляр приложения, который мы создаем во входном
сценарии. За более подробным описанием методов и свойств подключения к БД,
можно обратиться к описанию его класса. Однако, в
большинстве случаев, подключение к БД используется не непосредственно, а через
ActiveRecord.
Signup or Login in order to comment.