@ zdenek-machekの回答に対するいくつかの通知:
1)データベースクエリのプロファイルを作成するには、BjyProfiler
モジュールもインストールする必要があります。
2)(PDOを使用している場合はスキップ)BjyProfiler
前回使用したときに、mysqli接続に問題がありました(buffer_results
オプションがクラスに渡されませんでしたProfilingStatement
)。たぶん、今は修正されているか、間違った方法で設定しましたが、私のパッチは、BjyProfiler / src / BjyProfiler / Db / Adapter/ProfilingAdapter.phpでこのパラメーターを手動で渡すことです。
case 'Zend\Db\Adapter\Driver\Mysqli\Mysqli':
$statementPrototype = new Driver\Mysqli\ProfilingStatement($this->options['buffer_results']);
break;
3)ZendDeveloperTools
クエリの数を表示しますが、リストは表示しません。ページの下部にリストするために、view / zend-developer-tools / toolbar/toolbar.phtmlを次のように変更しました。
<!-- END Zend Developer Toolbar -->
<?php
$queryProfiles = $this->getHelperPluginManager()->getServiceLocator()
->get('Zend\Db\Adapter\Adapter')->getProfiler()->getQueryProfiles();
echo '<ol>';
foreach($queryProfiles as $queryObj)
{
$query = $queryObj->toArray();
echo '<li>';
echo '<b>' . ($query['elapsed']*1000) . '</b> ms<br/>';
echo $query['sql'];
if(count($query['parameters']))
{
echo '<br/><i>Parameters:</i> ';
$list = array();
foreach($query['parameters'] as $key => $value)
$list[] = '?'. $this->escapeHtml($key)
."='". $this->escapeHtml($value) ."'";
echo implode(', ', $list);
}
echo '</li>';
}
echo '</ol>';