2012-10-09 148 views
0

我正在尋找一種方法來配置由Zend_Table在內部執行的查詢。
例如,完成快速入門課程後,如何配置所有執行的查詢?
我試圖實現從的application.ini這樣的探查:是否可以配置Zend_Table查詢?

resources.db.profiler.class = "Zend_Db_Profiler_Firebug" 
resources.db.profiler.enabled = true 

,並放置在留言控制器下一行:

... 
$db = Zend_Db_Table_Abstract::getDefaultAdapter(); 
$profiler = $db->getProfiler(); 

echo $profiler->getTotalElapsedSecs(); 

這給了我0

我已經也嘗試啓用Profiler在如下所示的Bootstrap文件中:

protected function _initProfiler() { 
    $this->bootstrap("db"); 
    $profiler = new Zend_Db_Profiler_Firebug("All DB Queries"); 
    $profiler->setEnabled(true); 
    Zend_Registry::get("db")->setProfiler($profiler); 
} 

Whick不給我任何結果(我已經使用Zend_Log_Writer_Firebug()安裝並測試了Firebug和FirePHP)

我會很感激任何幫助。謝謝 !

回答

1

問題出在參數實例化中。當我輸入

resources.db.params.profiler.class = "Zend_Db_Profiler_Firebug" 
resources.db.params.profiler.enabled = true 

而不是以前的配置,一切都很順利。 注意.params部分的參數行

+0

.params不適用於我,我改用resources.db.profiler = true resources.db.profiler.class =「Zend_Db_Profiler_Firebug」 – max4ever

2

我還沒試過Firebug分析器。但我確實使用了一個html表格輸出分析器信息在查詢的每個頁面的底部。

啓用的application.ini

resources.db.params.profiler = true 

探查呈現在佈局輪廓結果:

<?php 
    $this->addScriptPath(APPLICATION_PATH . '/views/scripts'); 
    echo $this->render('profiler.phtml') 
?> 

profiler.phtml視圖渲染

<?php 
// get the default db adapter 
$adapter = Zend_Db_Table::getDefaultAdapter(); 
$profiler = $adapter->getProfiler(); 
if ($profiler->getEnabled() && $profiler->getTotalNumQueries() > 0) : 
?> 
    <div style='text-align:center'> 
     <h2>Database Profiling Report</h2> 
     <p>Total queries executed: <?php echo $profiler->getTotalNumQueries() ?></p> 
     <p>Total elapsed time: <?php echo $profiler->getTotalElapsedSecs() ?></p> 
    </div> 
    <table class='spreadsheet' cellpadding='0' cellspacing='0' style='margin:10px auto'> 
     <thead> 
      <tr> 
       <th>#</th> 
       <th>Query</th> 
       <th>Time</th> 
      </tr> 
     </thead> 
     <tbody> 
    <?php foreach ($profiler->getQueryProfiles() as $queryNumber => $query) : ?> 
       <tr> 
        <td>(<?php echo $queryNumber + 1 ?>)</td> 
        <td><?php echo $query->getQuery(); ?></td> 
        <td><?php echo $query->getElapsedSecs(); ?></td> 
       </tr> 
    <?php endforeach ?> 
     </tbody> 
    </table> 
    <?php endif ?> 

我不想象使用螢火蟲探查器要困難得多。

+0

這並不是我所期待的。不過謝謝! –