2013-02-26 35 views
2

我設置了一個過濾器來計算執行的查詢數量,並在超過一定限制時向我的數據庫寫入內容。如何在生產環境中訪問Doctrine分析器?

它在我的開發環境中工作正常,但是當我在生產環境中測試它時,我的數據庫不再返回分析器。我認爲它是一個可以爲開發環境提供數據庫分析器的環境,但我似乎可以找到它。

我使用Symfony1.4和Doctrine。

$database = $databaseManager->getDatabase($name); 
if ($database instanceof sfDoctrineDatabase && $profiler = $database->getProfiler()) 
{ 
    $events = $profiler->getQueryExecutionEvents(); 
} 

回答

3

您可以強制分析器,用於與profiler選擇您的database.yml內部的連接:

prod: 
    master: 
    class: sfDoctrineDatabase 
    param: 
     profiler: true 
     dsn: 'mysql:host=localhost;dbname=dbname' 
     username: username 
     password: password 

表示是否輸出學說日誌調試工具欄。探查器的默認值取決於環境。在開發環境中,默認值是true,否則 - false

+0

工程就像一個魅力! – Pino 2013-02-26 15:26:23

+1

@Pino但是在生產環境中要小心剖析器,不建議啓用它,因爲它會產生大量的調試內容,從而可能會減慢應用程序的運行速度。 – j0k 2013-02-26 15:28:55