fix PropelLogger stopwatch events

* add queries like "SET NAMES 'UTF8';"
* track only prepared statements
* add named labels to the StopwatchEvents corresponding to the query counter
This commit is contained in:
Toni Uebernickel 2012-02-16 23:41:53 +01:00
parent 7b8acbccf4
commit 13f0e4a01a

View File

@ -37,7 +37,7 @@ class PropelLogger
*/
protected $stopwatch;
private $isPrepare;
private $isPrepared;
/**
* Constructor.
@ -50,7 +50,7 @@ class PropelLogger
$this->logger = $logger;
$this->queries = array();
$this->stopwatch = $stopwatch;
$this->isPrepare = true;
$this->isPrepared = false;
}
/**
@ -135,14 +135,17 @@ class PropelLogger
$add = true;
if (null !== $this->stopwatch) {
if ($this->isPrepare) {
$this->stopwatch->start('propel', 'propel');
$this->isPrepare = false;
$trace = debug_backtrace();
$method = $trace[2]['args'][2];
$watch = 'Propel Query '.(count($this->queries)+1);
if ('PropelPDO::prepare' === $method) {
$this->isPrepared = true;
$this->stopwatch->start($watch, 'propel');
$add = false;
} else {
$this->stopwatch->stop('propel');
$this->isPrepare = true;
} elseif ($this->isPrepared) {
$this->stopwatch->stop($watch);
}
}