* @author Romain Quetiez * @author Denis Flaven * @license http://www.opensource.org/licenses/gpl-3.0.html LGPL */ class Duration { static $m_bEnabled = false; static public function Enable() { self::$m_bEnabled = true; } protected $m_fStarted = null; public function __construct() { if (!self::$m_bEnabled) return; $this->m_fStarted = MyHelpers::getmicrotime(); } // Get the duration since startup, and reset the counter for the next measure // public function Scratch($sMeasure) { if (!self::$m_bEnabled) return; $fStopped = MyHelpers::getmicrotime(); $fDuration = $fStopped - $this->m_fStarted; $this->Report($sMeasure.': '.round($fDuration, 3)); $this->m_fStarted = MyHelpers::getmicrotime(); } protected function Report($sText) { echo "DURATION... $sText
\n"; } } // Prototype, to be finalized later // Reports the function duration // One single thing to do: construct it class FunctionDuration { protected $m_sFunction = null; public function __construct() { $this->m_sFunction = 'my_function_name_in_call_stack'; $this->m_fStarted = MyHelpers::getmicrotime(); } public function __destruct() { $this->Scratch('Exiting '); } } ?>