转储原则查询计数



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

我尝试:

$stack = new DoctrineDBALLoggingDebugStack();
$this->em->getConfiguration()->setSQLLogger($stack);
//...queries there
var_dump($stack);

结果错误:

object(DoctrineDBALLoggingDebugStack)[334]
public 'queries' => 
array (size=0)
empty
public 'enabled' => boolean true
public 'start' => null
public 'currentQuery' => int 0

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

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

而不是 ORM 配置:

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

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

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

相关内容

  • 没有找到相关文章

最新更新