私は簡単なものを持っています:私はPHP Objectの初心者であり、すべての製品を含む製品テーブルを持っています。
製品のクラスもあります(インスタンスを製品のすべてのパラメーターで満たすコンストラクターを使用)。
すべての製品のリストが必要だとしましょう。製品のリスト用に別のクラスを作成しますか、それとも製品クラスの新しいインスタンスを作成する関数を作成しますか?
クラスクエリとまったく同じクエリを実行する必要がある場合、それは役に立たないので、私は今それの利点を実際には得ていませんか?
ヒントをありがとう!
アップデート
皆さんありがとう!それは私にとってまだかなり複雑ですが、これが私があなたのアドバイスに従おうとして(本について話している)したことです。
DAOを作成しました。このDAO内には、本のリストまたは1冊の本のいずれかを返す2つの静的関数と、本オブジェクトを作成する1つの静的関数があります。
この方法では、まだ2つのクエリがあります(1つはリスト用、もう1つは1冊の本用)。私はこれが間違っていると感じていますが、助けていただければ幸いです:)
class bookDAO {
public static function getBooks() {
$books = array();
$db = databaseConnection::getInstance();
$query = $db->query("SELECT * FROM books");
while($row = $query->fetchObject()) {
$book = self::createBookFromRow($row);
$books[] = $book;
}
return $books;
}
public static function getBook($id){
$db = databaseConnection::getInstance();
$query = $db->prepare("SELECT * FROM books WHERE id=:id");
$query->execute(array(":id"=>$id));
$row = $query->fetchObject();
$book = self::createBookFromRow($row);
return $book;
}
private static function createBookFromRow($row) {
$book = new book($row);
return $book;
}
}