Doctrine プロファイラーがクエリをキャッチしない
-
20-08-2019 - |
質問
ここで明らかな何かが欠けているはずだと思います。Doctrine と Zend Framework を一緒にセットアップしました。bootstrap.php ファイルには、プロファイラーの使用に関する Doctrine ドキュメントに基づいて次のものが含まれています。
$profiler = new Doctrine_Connection_Profiler();
$conn = Doctrine_Manager::connection();
$conn->setListener($profiler);
(...)
$frontController = Zend_Controller_Front::getInstance();
(...)
$query_count = 0;
$time = 0;
echo "<table width='100%' border='1'>";
foreach ( $profiler as $event ) {
if ($event->getName() != 'execute') {
continue;
}
$query_count++;
echo "<tr>";
$time += $event->getElapsedSecs() ;
echo "<td>" . $event->getName() . "</td><td>" . sprintf ( "%f" , $event->getElapsedSecs() ) . "</td>";
echo "<td>" . $event->getQuery() . "</td>" ;
$params = $event->getParams() ;
if ( ! empty ( $params ) ) {
echo "<td>";
echo join(', ', $params);
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
echo "Total time: " . $time . ", query count: $query_count <br>\n ";
エラーはなく、最後のプロファイラー出力は次のように出力されるだけです。「合計時間:0、クエリ数:0」。
クエリが実行されると、接続は間違いなく機能しています。Doctrine_Query::create() とその実行メソッドを使用して大量の項目をフェッチする SELECT があります。
解決
もっと良いアプローチがありますが、これが出発点としては良いかもしれません。
接続とプロファイラーがブートストラップ中にセットアップされると仮定すると、Doctrine リソースプラグインを開発するための最初の試みがいくつかあります。を参照してください。 http://www.nabble.com/RFC%3A-ZendX_Doctrine-to23454552.html そして http://www.nabble.com/Autoload-models-with-no-namespace-to23387744.html, 、コントローラー/アクションで次のようなことを行うことができます。
そして、レイアウトまたはビュー スクリプトで次のようなものを記述します。
他のヒント
あなたはそれを実行し始める前に、
$プロファイラ配列には何ですか?
所属していません StackOverflow