转储原则查询计数

时间:2017-08-17 19:56:44

标签: symfony doctrine-orm

在Symfony的开发者模式中,我可以看到EntityManager有多少查询。 如何转储这些数据?

我尝试:

$stack = new \Doctrine\DBAL\Logging\DebugStack();
$this->em->getConfiguration()->setSQLLogger($stack);
//...queries there
var_dump($stack);

结果错误:

object(Doctrine\DBAL\Logging\DebugStack)[334]
  public 'queries' => 
    array (size=0)
      empty
  public 'enabled' => boolean true
  public 'start' => null
  public 'currentQuery' => int 0

2 个答案:

答案 0 :(得分:0)

您可以通过编程方式访问分析数据,请参阅 https://symfony.com/doc/master/profiler/profiling_data.html

如果您在测试中需要它,请参阅此https://symfony.com/doc/master/testing.html#accessing-the-profiler-data

答案 1 :(得分:0)

所有SQL查询都记录在DBAL层中。所以使用DBAL配置:

$em->getConnection()->getConfiguration()->setSQLLogger($stack); // OK

而不是ORM配置:

$em->getConfiguration()->setSQLLogger($stack);