php-mpos/public/include/classes/debug.class.php
xisi 568445845a changes DEBUG SALT and SALTY from defines to variables
switched that in all places used (class loads mostly)
moved all includes at the beginning of index into bootstrap
moves *_PATH defines from config to bootstrap
config now uses defaults first, then user config
2014-01-29 07:34:50 -05:00

113 lines
3.2 KiB
PHP

<?php
$defflip = (!cfip()) ? exit(header('HTTP/1.1 401 Unauthorized')) : 1;
/**
* This file defines the debug class used in this site to enable
* verbose deugging outout.
* @package debug
* @author Sebastian 'Seraph' Grewe
* @copyright Sebastian Grewe
* @version 1.0
* */
class Debug {
/**
* @var integer $DEBUG enable (1) or disable (0) debugging
*/
private $DEBUG;
/**
* @var array $debugInfo Data array with debugging information
*/
private $arrDebugInfo;
/**
* @var float $startTime Start time of our debugger
*/
private $floatStartTime;
/**
* Construct our class
* @param integer $DEBUG [optional] Enable (>=1) or disable (0) debugging
* @return none
*/
function __construct($DEBUG=0) {
$this->DEBUG = $DEBUG;
if ($DEBUG >= 1) {
$this->floatStartTime = microtime(true);
$this->append("Debugging enabled", 1);
}
}
/**
* If we want to set our debugging level in a child class this allows us to do so
* @param integer $DEBUG our debugging level
*/
function setDebug($DEBUG) {
$this->DEBUG = $DEBUG;
}
/**
* Return a backtrace strin
* @return string Full backtrace <file>:<line> but no refereces to debug class
*/
public function getBacktrace() {
$bth = debug_backtrace();
while (strpos($bth[0]['file'], "classes/debug") != false) array_shift($bth);
foreach ($bth as $x) {
$backtrace[] = array(
'file' => substr($x['file'], strrpos($x['file'], '/') + 1),
'line' => $x['line'],
'function' => $x['function'],
);
}
return $backtrace;
}
/**
* We fill our data array here
* @param string $msg Debug Message
* @param string $file [optional] File name
* @param integer $line [optional] Line inside the $file
* @param integer $debug [optional] Debugging level, default 1
* @param string $class [optional] Class this is called from
* @param string $method [optional] Method this is called from
* @return none
*/
function append($msg, $debug=1) {
if ($this->DEBUG >= $debug) {
$this->arrDebugInfo[] = array(
'level' => $debug,
'time' => round((microtime(true) - $this->floatStartTime) * 1000, 2),
'backtrace' => $this->getBacktrace(),
'message' => $msg,
);
}
}
/**
* Return the created strDebugInfo array
* @return none
*/
public function getDebugInfo() {
return $this->arrDebugInfo;
}
/**
* Directly print the debugging information, table formatted
* @return none
*/
function printDebugInfo() {
echo "<table><tr><td>Timestamp</td><td>File</td><td>Line</td><td>Class</td><td>Method</td><td>Message</td></tr>";
foreach ($this->getDebugInfo() as $content) {
echo "<tr><td>" . $content['time'] . "</td><td>" . $content['backtrace'] . "</td><td>" . $content['message'] . "</td></tr>";
}
echo "</table>";
}
}
// Instantiate this class
$debug = new Debug($config['DEBUG']);
?>