2013-02-26 41 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