Idirom は 薄いDBライブラリ として使うには便利だが、レガシーなプロジェクトに導入していく過程では、多少カスタマイズして使うことになる. そんなときのこまごま Tips を紹介.
事例
既存DBの主キー命名ルールに合わせる
Idiorm のデフォルトでは、すべてのテーブルの主キーは id
という前提で動作するが、以下のようなレガシーあるあるケースだとそのままでは動かない.
-
foo
テーブルの主キーがfoo_id
-
bar
テーブルの主キーがbar_2_id
こういう場合は、Idiorm の id_column_override
設定を使う.
$id_column_override = [
'foo' => 'foo_id',
'bar' => 'bar_2_id',
];
ORM::configure([
'id_column_overrides' => $id_column_overrides,
]);
$id_column_override
相当のものを自動出力するようなスクリプトを書いておくとラク.
既存処理とトランザクションを共有する
既存処理がトランザクションを使っている場合は、ここにヘタに Idiorm の処理を入れ込むと、既存処理とは異なるDB接続を使ってしまい、トランザクションから外れてしまう.
こういう場合は、既存処理が使っている PDO
を直接 ORM
に設定して初期化する. これで、既存処理とおなじ接続を使ってくれるようになる.
ORM::set_db($pdo);