在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
答案 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);