[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 メーリングリストの案内