スケルトンアプリケーションを作り、データベースの設計が終わりました。 このセクションでは実際にブログデータベースを作成し、スケルトンアプリケーションとの接続を確立します。
データベースはSQLiteを使います。 Yiiのデータベースサポートは PDO の上に構築されているため、 アプリケーションコードを変更することなく、MySQLやPostgreSQLといった異なるDBMSを利用することができます。
データベースファイルとして、ディレクトリ /wwwroot/blog/protected/data
に blog.db
を作ります。ディレクトリとファイルはともにWebサーバプロセスと SQLite により書き込み可能である必要があります。ここでは単に /wwwroot/yii/demos/blog/protected/data/blog.db
にあるブログデモのデータベースファイルをコピーすることにします。もしくは /wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql
にある、SQLファイルを実行することでもデータベースを生成できます。
ヒント: SQL文の実行には、
sqlite3
コマンドラインツールを利用できます。 詳しくは SQLite 公式ウェブサイトを参照してください。
作ったスケルトンアプリケーションでブログデータベースを使うには、/wwwroot/blog/protected/config/main.php
に保存されている PHP スクリプトでアプリケーション初期構成 を変更する必要があります。
このスクリプトはキーと値のペアで構成された連想配列を返します。 これらの値はアプリケーションインスタンスを初期化するために使われます。
以下のようにアプリケーションの components
プロパティに、 db
という名前のエントリを追加します。
return array(
......
'components'=>array(
......
'db'=>array(
'class'=>'CDbConnection',
'connectionString'=>'sqlite:/wwwroot/blog/protected/data/blog.db',
),
),
......
);
上記の設定は、 CDbConnection クラスの db
アプリケーションコンポーネントを持ち、connectionString
プロパティが sqlite:/wwwroot/blog/protected/data/blog.db
に初期化されることを示します。
訳者注: yii-1.0.3以降のデモでは、'class'=>'CDbConnection'の記述はなくなっています。
この設定の場合、コードのどこからでも、Yii::app()->db
を通じて DB コネクションオブジェクトにアクセスすることができます。Yii::app()
は、エントリスクリプトで作成されたアプリケーションインスタンスを返すことに注意して下さい。DB コネクションのメソッドやプロパティに興味があれば、クラスリファレンスを参照して下さい。 しかし、多くの場合このDBコネクションを直接利用することはありません。 そのかわりにいわゆる ActiveRecord を利用してデータベースにアクセスします。
Signup or Login in order to comment.