LoginSignup
10
10

More than 5 years have passed since last update.

レガシーなプロジェクトに Idiorm を導入する

Posted at

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);

参考

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10