データベースの接続設定
fuel/app/config/db.php
に基本的な情報を入れる
このファイルがまず読み込まれ、その次に環境毎のファイルが読み込まれる
return array(
'default' => array(
'type' => 'mysqli',
'connection' => array(
'hostname' => 'localhost',
'port' => '3306',
'database' => 'データベース名',
'username' => 'ユーザ名',
'password' => 'パスワード',
'persistent' => false,
'compress' => false,
),
'identifier' => '`',
'table_prefix' => '',
'charset' => 'utf8',
'enable_cache' => true,
'profiling' => false,
),
);
fuel/app/config/development/db.php
に開発環境用の設定をする
データベース名は開発用のものを用意するのと
ユーザ名とパスワードはproduction
用とは違うのを用意すると人為的なミスによるデータ消失とかを防げる
return array(
'default' => array(
'connection' => array(
'hostname' => 'localhost',
'port' => 3306,
'database' => '開発用データベース名',
'username' => 'ユーザ名',
'password' => 'パスワード',
),
'profiling' => true,
),
);
fuel/app/config/test/db.php
にテスト環境用の設定をする
return array(
'default' => array(
'connection' => array(
'hostname' => 'localhost',
'port' => 3306,
'database' => 'データベース名',
'username' => 'ユーザ名',
'password' => 'パスワード',
),
'profiling' => true,
),
);
マイグレーションによるテーブルの作成
マイグレーションの設定ファイルfuel/core/config/migrations.php
をfuel/app/config/development
フォルダとfuel/app/config/test
にコピーする
マイグレーションファイルの生成
oil generate migration create_form name:string\[50\] email:string\[100\] comment:string\[400\] ip_address:string\[39\] user_agent\[512\] created_at:int updated_at:int
マイグレーションを実行しデータベースにテーブルを作成
oil refine migrate
FUEL_ENV=test oil refine migrate
FUEL_ENV=production oil refine migrate
バージョンを指定してマイグレーションを戻す
oil r migrate:down -v=0
マイグレーションでsimpleauthのuserを自動生成
oil refine migrate --packages=auth
FUEL_ENV=test oil refine migrate --packages=auth
FUEL_ENV=production oil refine migrate --packages=auth
を叩く
テーブルからのコード生成
oil refine fromdb: タイプ テーブル名[, テーブル名[, ....]]
テーブルからコードを自動生成する
タイプ: {model|scaffold}
ORM
- Def. ORM(Object-Relational Mapping)
- オブジェクト指向でのオブジェクトをデータベースのレコードにマッピングすること
ORMのWhere句でBetweenを使用する
$result = Model_Process::find('all', array(
'where' => array(
array(
'updated_at',
'between',
array($date.'000000', $date.'235959'),
),
)
));
ORMでトランザクション処理
http://qiita.com/hatahata/items/05bf95c3613a5ca9ee66
PHPExcel Package
http://www.qript.co.jp/blog/technique/1726/
http://github.com/muhittin/fuelphp_excelを/fuel/packagesに格納し、excelにフォルダ名を変更
ORMのメモリリーク問題
FuelPHPでのメモリリーク?について - Qiita
FuelPHPのOrmとキャッシュについてのTips | 東北ギーク
ORMでレコードを取得・追加するときにキャッシュとしてスタティック変数に保存するのが原因とのこと
普段ORMを利用する分にはキャッシュするのはいいことかもしれないが、バッチ処理だと致命的
FuelPHPでのメモリリーク?について - Qiita
の記事になるコメントにある応急処置がいい感じ
モデルにキャッシュを消すための関数を作る
FuelPHPでテーブルのレコードをカウントする方法
\DB::count_records('テーブル名');