複数アプリケーション間での設定などの共有

21 views
Skip to first unread message

氷川霧霞

unread,
Aug 25, 2014, 3:04:26 AM8/25/14
to bear-p...@googlegroups.com
はじめまして、氷川と申します。
最近、BEAR.Sunday を触り始めました。DI、AOPなども初めてなので、覚えることが多く大変ですが面白いです。

同一サーバ上で BEAR.Sunday の複数のアプリケーション、たとえば apps/VendorA.AppA/ (たとえばコンテンツ管理)と、 apps/VendorB.AppB/ (例えばユーザ管理)があり、両方とも同じデータベース接続情報を使うような場合、設定はどこか1箇所に書いてどちらのアプリケーションでもその設定を参照したいと思うのですが、どこに設定をもたせ、どう取得するか迷っています。

VendorA.AppA の constants.php に記述して VendorA.AppA のリソースとして取ってくるのか(これだと var/conf/db/mysql.php などで使うには間に合わない?)、設定ファイルの場所を決め事にしておいてそれぞれ DI でバインディングするのか、など、どうするべきかなあと思案中なのですが、「こうしたらいいんじゃない」というのがありましたら教えて下さいませ。

kenjis

unread,
Aug 25, 2014, 9:29:10 AM8/25/14
to bear-p...@googlegroups.com
Kenji です。


設定については私も考えているところでした。

データベース接続情報は、constants.php でデフォルトは以下のようになってます。

$masterDb = $slaveDb = require __DIR__  .'/db/sqlite.php';

このファイルのパスを変更し共通の設定ファイルを読み込むようにするのが簡単で
いいのではないかと思いました。


// Kenji

koriym

unread,
Aug 28, 2014, 3:18:08 AM8/28/14
to bear-p...@googlegroups.com
氷川さん

初めまして。質問ありがとうございます。

思いつくもので、簡易なものから並べてみます。

1)BがAの設定を参照する
2)kenjiさんのいうように共通ファイルを持つ
3)設定だけの共通パッケージを使用する

利用の仕方によって色々な解決方があると思います。

例えば3)ですが、DBの設定だけでなく、共通のエラーメッセージや、共通のインターセプターやアダプターなどチームやプロジェクトを横断するものがあるかもしれません。

例えばAcmeという会社のKumaというプロジェクトが"Web"と"Api"というプロジェクトがある場合。会社全体で共通化するもの、プロジェクトで共通化するもの、とあると思います。

Acme.Config
Kuma.Config はAcme.Configに依存
Kuma.WebはKuma.Configに依存
Kuma.ApiはKuma.Configに依存

(あるいはAcme.Config, Kuma.Config の代わりにAcme.Common, Kuma.Common)

どうでしょうか?

2014年8月25日月曜日 22時29分10秒 UTC+9 kenjis:

氷川霧霞

unread,
Aug 28, 2014, 6:14:40 AM8/28/14
to bear-p...@googlegroups.com
Kenjiさん、koriymさん、アドバイスありがとうございます!

> 3)設定だけの共通パッケージを使用する

なるほど、そうか、そうですね。
言われてみれば当たり前ですが、これが BEAR.Sunday 風な解決な気がしますね。
Kenjiさんのアイディアもシンプルで魅力的ですけど ^ ^

ありがとうございます。とても参考になりました。
Reply all
Reply to author
Forward
0 new messages