私はこれに関する経験豊かな開発者のアドバイスが必要です。私にそれをまっすぐにさせてください。プレゼンテーション用のPHPクラス構造
ユーザーが記事を投稿しているため、記事の一覧を表示し、投稿したユーザーを表示する必要があります。私の海流precedural方法で
このようなその何か:
$result = mysql_getresult("SELECT users.*, articles.*
FROM users JOIN articles ON users.id = articles.user_id
WHERE 1");
while($row = mysql_getrow($result)) {
display_username($row);
display_articletitle($row);
}
今私はOO方法にOOと
class User {
protected $data;
public function loadUserData($id) { $this->data = mysql_readstuff() }
public function displayUserName() { echo $this->data['name'] }
}
class Article {
protected $data;
public function loadArticleData($id) { $this->data = mysql_readstuff() }
public function displayArticleTitle() { echo $this->data['title'] }
}
問題、それをやりたい:
1)これらのクラスを持っています自分のデータを読み込むための独自のメソッド(および他の多くのメソッド)があります。そのため、JOINですべてのデータを一度に取得するための高速なmysqlクエリは実際には動作しません。独自のデータを読み込むことは、他の多くの方法(例えば、認証)には最適です。
2.)プレゼンテーション(savant3 templaterを使用)を分けて、表示方法をどこに置くべきですか?私は多くの多くのもの(仕事、コメントなど)を表示する必要がありますし、私はtemplaterのそれぞれのためのメソッドを作ることは良いアイデアだとは思わない。
この例はユーザーと記事ですが、ユーザー+コメント、ユーザー+仕事+要件があります。
私は表示方法を静的にしてパラメータを取らせることを考えましたが、プロシージャメソッドと違いはありません。または、$ dataを設定したパラメータに設定するsetData($ row)メソッドを作成します。
おそらく、この問題の一般的な解決策があります。
アドバイスありがとうございます。
条クラスは、loadメソッド、または表示方法を持つべきではない、 Skaccer
ありがとう!私はそれについて考える(自分のサイドプロジェクト)、あなたに戻ってくるだろう。ページングされた結果、注文された結果、全文検索と非全文検索の結果を扱うことができ、すぐに検索エンゲインとしてスフィンクスを追加することができるものが必要です。結果を数える必要もあります。 [こちらは現在のページへのリンクです](http://www.networkdance.com/dance-ballet-auditions) - 右側の「詳細検索」をクリックしてください。そしてそれはもっと多くのページで起こる必要があります... – Skaccer