0

ここで明らかな何かが欠けているに違いないと思います。Doctrine と Zend Framework を一緒にセットアップしました。プロファイラーを使用するためのDoctrineのドキュメントに基づいて、bootstrap.phpファイルには次のものがあります。

$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 があり、それが execute メソッドです。

4

2 に答える 2

1

より良いアプローチがありますが、これはより良い出発点かもしれません。

ブートストラップ中に接続とプロファイラーがセットアップされていると仮定すると、Doctrine リソース プラグインを開発する最初の試みがいくつかあります。 com/Autoload-models-with-no-namespace-to23387744.html、コントローラー/アクションで次のようなことができます:

http://pastie.org/475589

次に、レイアウトまたはビュー スクリプトで次のようにします。

http://pastie.org/475593

于 2009-05-12T13:49:49.627 に答える
0

実行を開始する前の $profiler 配列には何がありますか?

于 2009-05-09T18:06:32.450 に答える