データベースを使う その1 設定
FuelPHPのデータベースのマイグレーションやORM(オブジェクト連携モデル)機能を使うには、データベース設定ファイルの編集が必要です。
設定ファイルは、共通の設定を実行環境ごとの設定で部分的に上書きする形式になっています。
ここでは、PDOドライバを使う設定の例を示します。
共通の設定はfuel/app/config/db.phpに記述します。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | return array(   'default' => array(     # PDOを使う     'type' => 'pdo',     # 接続設定 詳細は実行環境毎のファイルに書きます     'connection' => array(       # 接続を持続しない       'persistent' => false,     ),     # デリミタのクォート記号     'identifier' => '`',     # テーブル名のプレフィクスは無し     'table_prefix' => '',     # 文字コードはUTF8     'charset' => 'utf8',     # キャッシュを使う     'enable_cache' => true,     # プロファイルしない     'profiling' => false,   ), ); | 
接続の詳細を実行環境ごとのファイルに記述することで、コードを書き換えることなく開発用と公開用のデータベースサーバを切り替えて使用することができます。 開発用の設定ファイルはfuel/app/config/development/db.php、公開用の設定ファイルはfuel/app/config/production/db.phpです。
| 1 2 3 4 5 6 7 8 9 10 11 | return array(   'default' => array(     'connection'  => array(       # localhost上のmysqlに作成したfuel_dbデータベースを使う場合       # より安全にするため、dsnにもcharsetを設定する       'dsn' => 'mysql:host=localhost;port=3306;dbname=fuel_db;charset=utf8',       'username' => 'ユーザ名',       'password' => 'パスワード',     ),   ), ); | 
開発用と公開用のほか、テスト用、ステージング用の環境を使うことができます。
設定ファイルはそれぞれfuel/app/config/test/db.php、fuel/app/config/staging/db.phpです。
データベースのモデルではORMパッケージを使うので、fuel/app/config/config.phpのalways_loadにORMの読み込みを追加します。
| 1 2 3 4 5 6 | 'always_load' => array(   'packages' => array(     'orm',     'parser'   ) ), | 
追補 mysqliドライバを使う例
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | return array(   'default' => array(     # mysqliを使います     'type' => 'mysqli',     # 接続設定 詳細は実行環境毎のファイルに書きます     'connection' => array(       # 接続を持続しない       'persistent' => false,     ),     # デリミタのクォート記号     'identifier' => '`',     # テーブル名のプレフィクスは無し     'table_prefix' => '',     # 文字コードはUTF8     'charset' => 'utf8',     # キャッシュを使う     'enable_cache' => true,     # プロファイルしない     'profiling' => false,   ), ); | 
| 1 2 3 4 5 6 7 8 9 10 11 12 | return array(   'default' => array(     # localhost上のmysqlに作成したデータベースfuel_dbを使う場合     'connection'  => array(       'hostname' => 'localhost',       'port' => '3306',       'database' => 'fuel_db',       'username' => 'ユーザ名',       'password' => 'パスワード',     ),   ), ); |