2011-01-23 11 views
7

Doctrine2 içindeki veritabanına sorguları nasıl alabilirim? Buna sadece istatistik için ihtiyacım var ve doktrin nasıl işlediğini, farklı durumlarda ne kadar sorgu ürettiğini öğrenmeye ihtiyacım var. Ama neyse, nasıl yapmalı?Doctrine2'deki veritabanına olan sayıları sayın

cevap

15
$stack = new \Doctrine\DBAL\Logging\DebugStack(); 
$entityManager->getConfiguration()->setSQLLogger($stack); 
// do stuff 
var_dump($stack); 
2

Sadece kabul edilen yanıta eklemek için.

Symfony'nin 2.x kumandanın bağlamdan Bunun için:

$doctrine = $this->get('doctrine'); 
$doctrine = $this->getDoctrine();  
$em = $doctrine->getConnection(); 

// $doctrine->getManager() did not work for me 
// (resulted in $stack->queries being empty array) 

$stack = new \Doctrine\DBAL\Logging\DebugStack(); 
$em->getConfiguration()->setSQLLogger($stack); 


... // do some queries 

var_dump($stack->queries); 

Teşekkür bu yayına: http://vvv.tobiassjosten.net/symfony/logging-doctrine-queries-in-symfony2/

+0

'$ doctrine-> getManger() me' için işe yaramadı çünkü mı eksik olan a? –