寻求一些最佳实践建议。基本上我有一个由各种属性组成的大型实体,其中一些属性是其他实体。
在我的数据映射器中“实例化”大实体的最佳实践是什么?我是否为“主”映射器中的其他实体调用其他映射器?例如,我有一个实体“大”,它由各种属性组成,其中“客户”属性是客户实体,这是最好的方法吗?
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) );
}
}
我已经看到人们在服务层中实例化其他映射器的解决方案,然后自行验证每个实体,最后将它们全部组合起来等等,但我真的不确定“构建”大型实体的最佳方式是什么基于其他几个实体。
任何意见或帮助表示赞赏,谢谢!