• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • Examples
  • File List

E:/E/GEAMP/www/openbiz/openbiz/others/Zend/Db/Profiler/Firebug.php

00001 <?php
00024 require_once 'Zend/Db/Profiler.php';
00025 
00027 require_once 'Zend/Wildfire/Plugin/FirePhp.php';
00028 
00030 require_once 'Zend/Wildfire/Plugin/FirePhp/TableMessage.php';
00031 
00041 class Zend_Db_Profiler_Firebug extends Zend_Db_Profiler
00042 {
00047     protected $_label = null;
00048 
00053     protected $_label_template = '%label% (%totalCount% @ %totalDuration% sec)';
00054 
00059     protected $_message = null;
00060 
00065     protected $_totalElapsedTime = 0;
00066 
00073     public function __construct($label = null)
00074     {
00075         $this->_label = $label;
00076         if(!$this->_label) {
00077             $this->_label = 'Zend_Db_Profiler_Firebug';
00078         }
00079     }
00080 
00088     public function setEnabled($enable)
00089     {
00090         parent::setEnabled($enable);
00091 
00092         if ($this->getEnabled()) {
00093 
00094             if (!$this->_message) {
00095                 $this->_message = new Zend_Wildfire_Plugin_FirePhp_TableMessage($this->_label);
00096                 $this->_message->setBuffered(true);
00097                 $this->_message->setHeader(array('Time','Event','Parameters'));
00098                 $this->_message->setDestroy(true);
00099                 $this->_message->setOption('includeLineNumbers', false);
00100                 Zend_Wildfire_Plugin_FirePhp::getInstance()->send($this->_message);
00101             }
00102 
00103         } else {
00104 
00105             if ($this->_message) {
00106                 $this->_message->setDestroy(true);
00107                 $this->_message = null;
00108             }
00109 
00110         }
00111 
00112         return $this;
00113     }
00114 
00122     public function queryEnd($queryId)
00123     {
00124         parent::queryEnd($queryId);
00125 
00126         if (!$this->getEnabled()) {
00127             return;
00128         }
00129 
00130         $this->_message->setDestroy(false);
00131 
00132         $profile = $this->getQueryProfile($queryId);
00133 
00134         $this->_totalElapsedTime += $profile->getElapsedSecs();
00135 
00136         $this->_message->addRow(array((string)round($profile->getElapsedSecs(),5),
00137                                       $profile->getQuery(),
00138                                       ($params=$profile->getQueryParams())?$params:null));
00139 
00140         $this->updateMessageLabel();
00141     }
00142 
00148     protected function updateMessageLabel()
00149     {
00150         if (!$this->_message) {
00151             return;
00152         }
00153         $this->_message->setLabel(str_replace(array('%label%',
00154                                                     '%totalCount%',
00155                                                     '%totalDuration%'),
00156                                               array($this->_label,
00157                                                     $this->getTotalNumQueries(),
00158                                                     (string)round($this->_totalElapsedTime,5)),
00159                                               $this->_label_template));
00160     }
00161 }

Generated on Thu Apr 19 2012 17:01:17 for openbiz by  doxygen 1.7.2