Posiadając utworzony szkielet aplikacji oraz zakończony projekt bazy danych, zajmiemy się w tej części utworzeniem bazy danych dla bloga oraz ustanowieniem połączenie do niej we wspomnianym szkielecie aplikacji.
Zdecydowaliśmy się utworzyć bazę danych SQLite. Ponieważ wsparcie dla baz danych opiera się na PDO, możemy bardzo łatwo przełączać się pomiędzy używaniem różnych typów baz danych (np. MySQL, PostgreSQL) bez potrzeby dokonywania zmian w kodzie aplikacji.
Utworzyliśmy plik bazy danych blog.db
w katalogu /wwwroot/blog/protected/data
.
Zauważ, że wymagania SQLLite, powodują że zarówno katalog jak i plik bazy danych powinny być zapisywalne przez proces
serwera. Można po prostu skopiować plik bazy danych z dema blogu znajdującego się w instalacji
Yii w /wwwroot/yii/demos/blog/protected/data/blog.db
. Możemy również wygenerować bazę danych
poprzez wykonanie zapytań SQL zawartych w pliku /wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql
.
Wskazówka: aby móc wykonywać wyrażenia SQL, możemy używać narzędzia linii poleceń
sqlite3
, które można znaleźć na oficjalnej stronie SQLite.
Aby używać bazę danych blogu w utworzonym szkielecie aplikacji, musimy zmodyfikować jego
konfigurację aplikacji
która przechowywana jest jako skrypt PHP /wwwroot/blog/protected/config/main.php
.
Skrypt zwraca asocjacyjną tablicę zawierającą pary nazwa-wartość, z których każda
używana jest do zainicjalizowania właściwości instancji aplikacji.
Skonfigurujemy właściwość components
aplikacji poprzez dodanie do niej nowego wpisu nazwanego
db
w następujący sposób,
return array(
......
'components'=>array(
......
'db'=>array(
'class'=>'CDbConnection',
'connectionString'=>'sqlite:/wwwroot/blog/protected/data/blog.db',
),
),
......
);
Powyższa konfiguracja mówi nam, że posiadamy komponent aplikacji db
,
którego klasą jest CDbConnection i którego właściwość connectionString
powinna zostać zainicjalizowana wartością sqlite:/wwwroot/blog/protected/data/blog.db
.
Przy użyciu tej konfiguracji, możemy uzyskać dostęp do obiektu połączenia z bazą danych przy użyciu wyrażenia Yii::app()->db
w dowolnym miejscu naszego kodu. Zauważ, że Yii::app()
zwraca instancję aplikacji, którą utworzyliśmy w skrypcie wejściowym.
Jeśli jesteś zainteresowany poznaniem metod posiadanych przez połączenie DB oraz jego właściwościami,
możesz udać się do dokumentacji klas. Jednakże w większości przypadków nie
będziemy używali tego połączenia z bazą danych wprost. W zamian, będziemy używać
tak zwanego rekordu aktywnego
w celu uzyskania dostępu do bazy danych.
Signup or Login in order to comment.