私はそのような問題について考えていました...クラス Person があるとしましょう:
class Person {
private $iPersonId;
private $sName;
private $sLastName;
private $rConn;
public function __construct($rConn, $iPersonId) {
$this->rConn = $rConn;
$this->iPersonId = $iPersonId;
}
public function load() {
// load name and last name using the $rConn object and $iPersonId
}
}
そして今、多くの人々に対していくつかのアクションを実行したいので、新しいクラスを書きます:
class People {
private $aPeople = array();
public function addPerson(Person $oPerson) {
// ...
}
public function loadPeople() {
// PROBLEM HERE //
}
}
ここで 2 つの問題があります: 1. Person と People には読み込み用の同じインターフェイス (関数 load()) がありますが、データを読み込むために People の $aPeople を反復処理したい場合、次のような maaaaany クエリが発生します。
SELECT * FROM people WHERE id = 1
SELECT * FROM people WHERE id = 2
SELECT ......
.....
....
そして、1000をロードしたい場合、何かがブームになります:)。
1 つのクエリですべてのユーザーを読み込むために、このコードをどのように設計すればよいですか? (の)
- People に追加するすべての Person オブジェクトで依存性注入を使い続ける必要があります。DRY ルールに反しており、見栄えがよくありません。
親愛なるユーザーの皆さん、このコードを設計するより良い方法は何ですか?