Hawk
schol****@hawkl*****
2006年 7月 9日 (日) 22:49:04 JST
Hawkです。 私も木内さんと概ね同じ方法でPagerを用いていますが、 DAOの上にもう一枚レイヤを用意して(仮にdbLogic)、 Pagerの初期化やLIMITの算出はその中で行っています。 DAOには出来るだけ素直にSQLを実行する機能だけを持たせておいて、 凝った処理はdbLogicのメソッドで対応する、というイメージです。 また私は単純なDAOの他にDB_DataObjectも併用しているのですが、 dbLogicとほぼ同様のインターフェースを備えた、 DAOの代わりにDB_DataObjectを使う”dbdoLogic”を用意して DB_DataObjectでも同じような感覚でPaging処理を行えるようにしています。 私自身これがベストな方法だとは考えていませんが、 参考になれば幸いです。 木内智史 wrote: > お世話になっております。木内です。 > > まずは、Mapleがバージョン3.1.1がリリースしたとの事で御礼申し上げます。 > これからも頑張ってください!応援しております。 > > > さて、今回はPagerについての質問です。 > ページ送り部分を、自分で構築していらっしゃる方もいるとは思いますが、僕な > んかはもっぱらPEARのPagerを利用して、ページ送り部分を構築します。 > そこでMapleのどこにPagerを組み込もうかと考えた結果、 > > 「DAOクラスのインターフェースを作って、そのインターフェースに > Pagerを放り込んでしまおう」 > > と考えました。 > 当然、Mapleで使用するDAOクラスは、このインターフェースを継承します。 > Pager機能をディフォルトで持ったDAOクラスは、データ取得と共に、必要に応じ > てPagerも生成し、それを丸ごとDTOに投げ込んで返却。 > これまたMapleで使用するDTOに関しても、DTOインターフェースが用意されてお > り、Maple使用のDTOはすべてこのDTOインターフェースを継承します。 > このDTOはPagerの格納部分も保持しており、 > > $DTO->getPager(); > > などで、DAOから受け渡されたページ送り部分を取得する事ができます。 > > > ちょっと分かりづらい文章だとは思いますが、大体こんな感じでPagerを組み込 > もうと考えております。 > しかし、いかんせんプログラマ歴1年程度なので、自分の構想は自分であまりス > マートだとは思えません。 > 皆さんの意見を聞かせていただけないでしょうか? > 皆さんはどのようにPagerなどの機能を盛り込んでおられるのでしょうか? > ご指導の程、よろしくお願いいたします。 > -- Hawk : { web site : http://blog.hawklab.jp/ }