レサパンって平和の象徴ですよね

生まれ変わったら中東の石油王になる予定ですよね

PHP/Idiorm + Paris を用いて同一プロジェクト内で複数DBに接続 (and Using Namespace)

Idiorm + Paris を使って、同一プロジェクト内で複数のDBに接続し、なおかつ名前空間によって各機能をパッケージング。
ちょっと詰まったのでメモ。

<?php

namespace MyNamespace;

require_once '/path/to/BaseWrapperModel.class.php';

# データベース設定
\ORM::configure('mysql:host='.DB_HOST.';dbname='.DB_NAME, null, 'connection_name');
\ORM::configure('username', DB_USER, 'connection_name');
\ORM::configure('password', DB_PASSWORD, 'connection_name');
\ORM::configure('driver_options', [ \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', ], 'connection_name');

\Model::$short_table_names = true;

class Base extends \BaseWrapperModel {
  
}


以下のメソッドの引数がキモらしく、

\ORM::configure('mysql:host='.DB_HOST.';dbname='.DB_NAME, null, 'connection_name');

connection_name に任意の接続名を指定してあげて、なおかつ第3引数がないとダメだったようです。


また、has_many を指定する際も同様に第3引数に何かしら渡してあげる必要がありました。

$this->has_many('MyNamespace\Hoge', 'fuga_id', null, 'connection_name');


PHP の Namespace の仕様も勉強できたし、詰まったけどタメにはなりましたとさ。