2016-08-18 72 views
2

我正在爲Symfony 2的捆綁軟件創建控制檯命令。此命令對數據庫(Mysql)執行多個請求。爲了調試我的命令,我需要知道在命令執行過程中執行了多少SQL查詢。如果可能的話,顯示這些請求(像Symfony分析器那樣)Symfony2 - SQL請求的數量

(我有和AJAX請求相同的問題。當我發出AJAX請求時,我無法知道請求期間執行了多少查詢,如果你有一個想法...)

謝謝你提前給任何人可能會給我一些想法。 :)

回答

4

您可以啓用日誌記錄的學說,如:

$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); 

你可以去看到:http://vvv.tobiassjosten.net/symfony/logging-doctrine-queries-in-symfony2/

要返回塞薩爾什麼塞薩爾自己。我在這裏找到它:Count queries to database in Doctrine2

+0

謝謝,我會看到:) – graille

+0

我喜歡這個解決方案。好的建議 –

0

您可以將所有這些邏輯放入域模型中,僅將命令視爲調用者。然後,您可以使用www和profiler進行診斷的控制器使用相同的域模型。

第二件事是你應該對此進行集成測試,並且你可以用這個測試來驗證執行時間。