DB_DataObject
DB_DataObjectを使おうと思ったんだけど、情報が少なそうだし少ない情報で「かゆいところに手が届かない」とか書いてあったら使う気なくなってきた…。
待ってたら改善されるんだろうか。
# しばし作業
ダイコンを使って継承を使わない書き方をしたら、DBの接続とかの共有設定はどこに書いたらいいんだろう。
DAOクラスを2コ作ったらその設定ファイル2コに接続用文字列をそれぞれ書く?
根本的な勉強不足。。
# しばし思案
これがMapleで言うところのグローバルフィルタだったりモジュールフィルタだったりで、AOPでいうところの横断的関心事なのかな。
でも同じページでもログインしているユーザだけDBにアクセスしたい場合とかは、コンテナに登録されたビジネスロジックがDBに繋ぎたいわけで、コンテナの中のコンポーネントに対してグループ指定がしたいような。
散々考えた末、結局ビジネスロジッククラスのコンストラクタでコンテナからDB接続用クラスを呼び出せってことなんでしょうか。。
そうするとDB接続用クラスの設定ファイルに接続用文字列を書いて、特に問題ない感じがするけれど、DAOクラスのそれぞれのコンストラクタにコンテナからDB接続クラスを呼び出すのは違和感が。
継承によってコードの重複を防ぐか、DIコンテナによってコードの重複を防ぐか、、
たいしたことないんだけど
class BusinessLogic extends DBconnect { function BusinessLogic(){ parent::connect(); } }
とするか
class BusinessLogic { function BusinessLogic(){ $container = & DIContainerFactory::getContainer(); $DBconnect = & $container->getComponent('DBconnect'); $DBconnect->connect(); } }
とするか
class BusinessLogic { function BusinessLogic(){ DBconnect::connect(); } }
とするか。。
継承の方がすっきりするような。
なんか使い方間違ってる感が。。