[PHP-users 30808] ビジネスロジック層とDao層とPagerについて
木内智史
samurai @ don-quijote.jp
2006年 11月 27日 (月) 18:58:12 JST
いつもお世話になっております。木内と申します。
普段はやりとりを覗いているだけなのですが、今回コーディング中に悩んでしまっ
て、初の投稿をさせていただきます。よろしくお願いいたします。
今回質問させていただきたいことは、
各コーディング層(?)の切り分けを皆さんどのように行っているのでしょうか?
という事です。
現在フレームワークなどによって、「MVCの切り分け」が重要とされていますが、
M(モデル)層においてさらに、
・ロジック層
・データアクセス層
の二つに切り分ける事が可能だと思います。
そこで僕は「よし、分けよう」と思い、例えば一つの機能のコンポーネントを用
意する場合、
・Component_Logic
・Component_Dao
という二つのクラスを作成し、SQL発行などは全てDao層において集中することを
心がけています。
ここで、1つめの悩みがでてきます。
僕はフレームワークMapleを使用して開発を行っているのですが、Mapleには
ActiveGatewayという優れたO/Rマッパーが付属(?)しています。
SQL発行などはすべてActiveGatewayがおこなってくれるために、Dao層自体にSQL
の記述が一切ありません。こういった状況下においてDao層は果たして有効なの
でしょうか?それとも、O/RマッパーをDao層と定義してもよろしいのでしょうか?
S2Dao.PHP5はO/Rマッパーだと思いますので、そういう意味ではやはり、
O/Rマッパー = Dao
という認識を持つのですが、誤りはないでしょうか?
そしてもう一つの質問はDao層にどのようにPagerをからませるべきかです。
これに関しては、S2Pager.PHP5とS2Dao.PHP5の絡みに詳しい方がいらっしゃった
なら解説いただけると嬉しいです。
理想としましては、Dao層の返却するDTO自体が、Pagerの機能を包括しているこ
となのですが、皆さんはどのうにDao層とPagerを絡めておりますでしょうか?
Pagerに使用するクラス(自作、PEAR::Pager、S2Pager.PHP5など)も同時に教え
ていただけると嬉しいです。
以上、ちょっと質問が長くなりましたが、よろしくお願いいたします。
--
木内智史 <samurai @ don-quijote.jp>
PHP-users メーリングリストの案内