_label = $label; if(!$this->_label) { $this->_label = 'Zend_Db_Profiler_Firebug'; } } /** * Enable or disable the profiler. If $enable is false, the profiler * is disabled and will not log any queries sent to it. * * @param boolean $enable * @return Zend_Db_Profiler Provides a fluent interface */ public function setEnabled($enable) { parent::setEnabled($enable); if ($this->getEnabled()) { if (!$this->_message) { $this->_message = new Zend_Wildfire_Plugin_FirePhp_TableMessage($this->_label); $this->_message->setBuffered(true); $this->_message->setHeader(array('Time','Event','Parameters')); $this->_message->setDestroy(true); $this->_message->setOption('includeLineNumbers', false); Zend_Wildfire_Plugin_FirePhp::getInstance()->send($this->_message); } } else { if ($this->_message) { $this->_message->setDestroy(true); $this->_message = null; } } return $this; } /** * Intercept the query end and log the profiling data. * * @param integer $queryId * @throws Zend_Db_Profiler_Exception * @return void */ public function queryEnd($queryId) { $state = parent::queryEnd($queryId); if (!$this->getEnabled() || $state == self::IGNORED) { return; } $this->_message->setDestroy(false); $profile = $this->getQueryProfile($queryId); $this->_totalElapsedTime += $profile->getElapsedSecs(); $this->_message->addRow(array((string)round($profile->getElapsedSecs(),5), $profile->getQuery(), ($params=$profile->getQueryParams())?$params:null)); $this->updateMessageLabel(); } /** * Update the label of the message holding the profile info. * * @return void */ protected function updateMessageLabel() { if (!$this->_message) { return; } $this->_message->setLabel(str_replace(array('%label%', '%totalCount%', '%totalDuration%'), array($this->_label, $this->getTotalNumQueries(), (string)round($this->_totalElapsedTime,5)), $this->_label_template)); } }