2012-01-14 32 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如果你真的很需要那額外的性能提升,但我會建議對優化你有證據證明這是真的之前問題所在,通過剖析。