2012-01-14 71 views
1

时数组而不是对象我有一点已经困扰了我一段时间的一个问题。我正在使用Doctrine 2.0进行一些我正在开发的项目,并且我遇到了一些棘手的问题。学说2.0 - 保湿查看信息

在大多数我水合成阵列,而不是对象的项目前端应用程序的;我的意思是,当我产生一种学说查询我可能做到这一点:

$entityManager = $this->getEntityManager(); 
$query = $entityManager->getQueryBuilder(); 
$query->select('something', 'somethingElse') 
     ->from('My\Entity\Location', 'something') 
     ->leftJoin('something.somethingelse', 'somethingElse') 
     ->where('something.id = :someId') 
     ->setParameter('someId', $someId) 
     ->getQuery(); 

$result = $query->getArrayResult(); 

现在,这是我在做什么了所有这一切都在我们的应用程序的前端代码,因为保湿到一个数组是一比保湿物体快得多。现在我的问题是:如果我使用的学说,我应该不会真的是使用getResult(),然后通过实体返回到视图,并有与他们互动?

我使用getResultgetSingleResult当我在行政领域说,我正在改变一个实体;但它只是感觉有点古怪利用令人难以置信的重学说只是检索到的信息对前端阵列 - 这是我可以用一个简单的PDO做呢?!?

希望我做了我的问题不够清楚。

Tom

回答

2

原则做了额外的验证,并使联接条件更容易编写。这种便利可能不是免费的,但考虑到长期维护,它可能仍然很好。如果你担心表现,我会建议你做一些分析,看看它真的是多么昂贵。当在Doctrine中启用所有缓存时,它不会比直接查询贵得多。

没有什么错,直接去到SQL如果你真的很需要那额外的性能提升,但我会建议对优化你有证据证明这是真的之前问题所在,通过剖析。