WordPressやSymfonyのTipsを中心にアニメや日常の出来事について語ります。
メニュー

【Symfony2】複数のエンティティマネージャと連携する方法

この記事は約1分34秒で読めます

symfony2
ゆっきー
ども、カフェブロガーの悠木です。 お気に入りのカフェはドトールコーヒーです。 14時からの限定スイーツ「シューシャポー」が大好きです。

Symfony2を使って複数のデータベースと連携する必要性が出てきました。
ちょいちょい調べたのですが、情報があまりなかったので載せておきます。

複数のエンティティマネージャを使うと複雑になるのでなるべく使わないほうがいいらしいです。とはいえ、外部のデータベースと連携、つまり複数のデータベースと連携する必要性があったので・・・使うことになりました。

複数のエンティティマネージャと連携する方法

複数のデータベース接続情報をパラメータに追加

parameters.ymlにデータベースの接続情報を追加します。

composerでSymfonyの更新をかけたときにparameters.ymlは元に戻されるので注意してください。
2つ目の接続先情報はparameters2.ymlなど別ファイルで定義した方がいいかもしれません。

config.ymlに複数のエンティティマネージャを定義する

app/config/config.phpに複数のエンティティマネージャを追加します。

エンティティマネージャの呼び出し方

困っている点

CRUD生成コマンドなどでcustomerエンティティマネージャを指定できない

例えば上記のようなCRUDを自動生成してくれる大変便利なコマンドですが、customerエンティティマネージャをオプションで指定できないようです。
(ご存知の方がいたら教えてください・・・。)

1度生成してしまえば、使わなくなるので使うときだけデフォルトのエンティティマネージャを切り替える方法を使っています。
CRUDコマンドを発行するときにオプションでエンティティマネージャを指定できればいいのですが・・・
(ご存知の方がいたら教えてください・・・!)

defaultエンティティマネージャとcustomerエンティティマネージャを結合できない

内部結合やら外部結合やら異なるエンティティマネージャ(データベース)で行いたいのですが、取っ掛かりさえ掴めません。
個々のエンティティマネージャに対してであれば抽出や挿入など特に問題ないのですが、結合したり連携させようとすると・・・取っ掛かりさえ掴めません。

複数のエンティティマネージャをJOINさせたいんですが、、、ちょっと調べてみます。

参考サイト

Symfony2おすすめ書籍

関連記事

  1. symfony2
  2. symfony2
  3. MySQL
  4. Symfony2 blogチュートリアル 06 テーブルスキーマとエンティティクラス
  5. symfony2
  6. symfony2

コメントをお待ちしております

PR

カテゴリー