いくつかのベストプラクティスのアドバイスを求めています。基本的に、私はさまざまなプロパティで構成される大きなエンティティを持っていますが、一部のプロパティは他のエンティティです。
データマッパーで大きなエンティティを「インスタンス化」するためのベストプラクティスは何ですか?「メイン」マッパー内の他のエンティティに対して他のマッパーを呼び出しますか?たとえば、「customer」プロパティがcustomerエンティティであるさまざまなプロパティで構成されるエンティティ「Big」がありますが、これが最善の方法ですか?
class BigMapper{
//Find and return a BigEntity
function find($id){
$customerMapper = new CustomerMapper($this->db);
$customer = $customerMapper->findByBigEntityId($id);
$bigRow = $this->db->fetchRow('SELECT * FROM big WHERE id = ?', $id);
$bigRow['customer'] = $customer; //This line feels sort of ugly.... and then:
return( new EntityBig($bigRow) );
}
}
人々がサービスレイヤーで他のマッパーをインスタンス化し、次に各エンティティをそれ自体で検証し、最終的にそれらすべてを組み合わせるなどのソリューションを見てきましたが、大きなエンティティを「構築」する最良の方法は本当にわかりません他のいくつかのエンティティに基づいています。
コメントや助けていただければ幸いです。ありがとうございます。