decoy
youtu****@gmail*****
2009年 7月 23日 (木) 13:01:00 JST
decoyです。 > autoloadで配列でわたせるんですね。。。知りませんでした(笑) 配列で渡せるというか、 下記のような配列で渡して複数のDBサーバへ接続出来るよう改造(Loader.phpを拡張)しています。 デフォルトでは無理ですね。 // decoy 2009/07/23 11:34 に kunitsuji<tsuji****@m-s*****> さんは書きました: > kunitsujiです。 > > decoyさん。 > > をを、こんな感じのものが欲しかったんですー。 > autoloadで配列でわたせるんですね。。。知りませんでした(笑) > 参考にさせていただきます! > >>decoyです。 >> >>私の場合は下記のような感じで更新系と参照系を分けています。 >> >>1. >>system/application/config/autoload.php に通常であれば >>$autoload['libraries'] = array('database'); と書くところを >>下記のような感じで書く。 >> >>$autoload['libraries'] = array( >> 'database' => array( >> 'db' => 'Master', >> 'slavedb' => 'Slave', >> ), >>); >> >>2. >>system/application/config/database.php に繋ぎたいDBサーバの数だけ設定を書く。 >> >> >>$db['Master'] = array( >>・・・ >>); >> >>$db['Slave'] = array( >>・・・ >>); >> >>3. >>Loader.phpを継承したMY_Loader.phpを作成し、 >>Loader::databaseやLoader::_ci_autoloader辺りをオーバーライドし、 >>2で設定した数だけDBに接続するようにする。 >> >> >> >>こうすることで、モデル辺りで更新系の処理を行いたければ、 >>$this->db の後にSQLを書いたり、$this->db->insert(); したり、 >>参照系の処理を行いたければ、$this->slavedb の後に >>SQLを書いたり、$this->slavedb->get(); したりすればOKです。 >> >>以上、ご参考まで。 >> >> >>// decoy >> >>----- Original Message ----- >>From: <usagi****@ezweb*****> >>To: <codei****@lists*****> >>Sent: Tuesday, July 21, 2009 8:24 PM >>Subject: Re: [Codeigniter-users] CIのDBクラスを使った場合の処理で質問 >> >> >>> kunitsujiです。 >>> やはり、DBクラスのラッパーを作って、 >>> アクティブレコードでインサートとか書いたら、そこで切り分けるしかないか >>> な。。。 >>> >>> 誰もやってないんですかね。 >>> >>> ちなみにPNEは、リード、ライトの上で、処理関数を使ってますが、そこで吸収して >>> ますよ。少し凄いですね(笑) >>> まあ、PEARのDBクラスをラッピングしてるんですが。 >>> >>>>安藤です。 >>>> >>>>2009/07/21 19:54 に <usagi****@ezweb*****> さんは書きました: >>>>> kunitsujiです。 >>>>> 安藤さん、どうも。 >>>>> 例えば、最初1つのDBでアプリを動かして、あとで1台追加する場合、アプリ側は >>>>> 意識をしたくないんですよ。 >>>>> >>>>> 設定に一つ足すだけで、フレームワーク側が吸収して欲しいのです。 >>>>> CIを考えた場合は確かに、CIの責務ではないように感じますね。 >>>>> アプリケーションのベースでやるべきかな。 >>>>> MyNETS2のベースでやるべきだとは思いますが、DBまわりって継承簡単に出来ない >>>>> 仕組みなんですよね(笑) >>>> >>>>単純に考えるなら、本でも書きましたが、 >>>>read系、write系ってモデルを切り分けることでしょうかね。 >>>>これだと、OpenPNEと一緒になってしまいますがw >>>> >>>>ちょっと考えましたが、writeでもreadはするので、共通モデルの >>>>汎用性ががた落ちになりそうですね。 >>>> >>>>//安藤 >>>> >>>> >>>>> >>>>>>安藤です。 >>>>>> >>>>>>2009/07/21 19:36 に kunitsuji<tsuji****@m-s*****> さんは書きました: >>>>>>> kunitsujiです。 >>>>>>> >>>>>>> CIのDBクラスを使って、接続先DBを変えることができます。 >>>>>>> たとえば、MySQLでマスターとスレーブを切り替えるような場合ですね。 >>>>>>> >>>>>>> この時に思ったのですが、 >>>>>>> subのDBに記述がある場合、自動的に更新系の処理はdefault、SELECT系の処理 >>>>>>> は >>>>>>> >>>>>>> sub、見たいなことってできないもんでしょうかね。。。 >>>>>>> >>>>>>> 実際ほとんどのアプリではdatabaseをつかうので、autoloadで読み込みしたり >>>>>>> し >>>>>>> >>>>>>> てますので、都度modelで呼び出すのもどうかと思うし。 >>>>>>> >>>>>>> このあたりうまく処理してるひといますか? >>>>>> >>>>>>この辺って、フレームワーク側でやるなら明示的にやる場合が多いと思います。 >>>>>>自動だと、誰もが望む構成になりえないと言うか。 >>>>>> >>>>>>自動的ってなると、負荷分散側に任せたほうが良くないでしょうか? >>>>>>#クラスタリング >>>>>> >>>>>>//安藤 >>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Codeigniter-users mailing list >>>>>>> Codei****@lists***** >>>>>>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>>-- >>>>>>------------------------------------------------------------------------- >>>>>>--------------- >>>>>>株式会社 音生 >>>>>>安藤 建一 >>>>>>愛知県名古屋市中区金山5丁目11−6 >>>>>>名古屋ソフトウェアセンタービル1F >>>>>>TEL : 052-884-0017 >>>>>>FAX : 052-884-0018 >>>>>>URL : http://neo-navi.net/ >>>>>>------------------------------------------------------------------------- >>>>>>--------------- >>>>>> >>>>>>_______________________________________________ >>>>>>Codeigniter-users mailing list >>>>>>Codei****@lists***** >>>>>>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >>>>> >>>>> _______________________________________________ >>>>> Codeigniter-users mailing list >>>>> Codei****@lists***** >>>>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >>>> >>>>_______________________________________________ >>>>Codeigniter-users mailing list >>>>Codei****@lists***** >>>>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >>> >>> _______________________________________________ >>> Codeigniter-users mailing list >>> Codei****@lists***** >>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >> >>_______________________________________________ >>Codeigniter-users mailing list >>Codei****@lists***** >>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >