includes/debugger/debugConsole.functions.php
changeset 1 fe660c52c48f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/includes/debugger/debugConsole.functions.php	Wed Jun 13 16:07:17 2007 -0400
@@ -0,0 +1,126 @@
+<?php
+/**
+ * debugConsole functions
+ *
+ * @author Andreas Demmer <info@debugconsole.de>
+ * @see <http://www.debugconsole.de>
+ * @version 1.0.0
+ * @package debugConsole_1.2.1
+ */
+
+/**
+ * show debug info of a variable in debugConsole,
+ * add own text for documentation or hints
+ * 
+ * @param mixed $variable
+ * @param string $text
+ */
+function dc_dump($variable, $text) {
+  if(!defined('ENANO_DEBUG')) return false;
+	$debugConsole = debugConsoleLoader();
+	
+	if (is_object($debugConsole)) {
+		$debugConsole->dump($variable, $text);
+	}
+}
+
+/**
+ * watch value changes of a variable in debugConsole
+ *
+ * @param string $variableName
+ */
+function dc_watch($variableName) {
+  if(!defined('ENANO_DEBUG')) return false;
+	$debugConsole = debugConsoleLoader();
+	
+	if (is_object($debugConsole)) {
+		$debugConsole->watchVariable($variableName);
+	}
+}
+
+/**
+ * show checkpoint info in debugConsole to make sure
+ * that a certain program line has been passed
+ *
+ * @param string $message
+ */
+function dc_here($message = NULL) {
+  if(!defined('ENANO_DEBUG')) return false;
+	$debugConsole = debugConsoleLoader();
+	
+	if (is_object($debugConsole)) {
+		(bool)$message ? $debugConsole->passedCheckpoint($message) : $debugConsole->passedCheckpoint();
+	}
+}
+
+/**
+ * starts a new timer clock and returns its handle
+ *
+ * @return mixed
+ * @param string $comment
+ */
+function dc_start_timer($comment) {
+  if(!defined('ENANO_DEBUG')) return false;
+	$debugConsole = debugConsoleLoader();
+	
+	if (is_object($debugConsole)) {
+		return $debugConsole->startTimer($comment);
+	}
+}
+
+/**
+ * stops and shows a certain timer clock in debugConsole
+ *
+ * @return bool
+ * @param string $timerHandle
+ */
+function dc_stop_timer($timerHandle) {
+  if(!defined('ENANO_DEBUG')) return false;
+	$debugConsole = debugConsoleLoader();
+	
+	if (is_object($debugConsole)) {
+		return $debugConsole->stopTimer($timerHandle);
+	}
+}
+
+/**
+ * singleton loader for debugConsole
+ * DO NOT USE, private to debugConsole functions
+ *
+ * @return mixed
+ */
+function debugConsoleLoader() {
+	static $debugConsole;
+	static $access = 'unset';
+
+	$config = $GLOBALS['_debugConsoleConfig'];
+	
+	/* obey access restrictions */
+	if (gettype($access) != 'bool') {
+		if ($config['active']) {
+			if ($config['restrictions']['restrictAccess']) {
+				if (in_array($_SERVER['REMOTE_ADDR'], $config['restrictions']['allowedClientAdresses'])) {
+					$access = TRUE;
+				} else {
+					$access = FALSE;
+				}
+			} else {
+				$access = TRUE;
+			}
+		} else {
+			$access = FALSE;
+		}
+	}
+	
+	/* access granted */
+	if ($access) {
+		if (!is_object($debugConsole)) {
+			$debugConsole = new debugConsole();
+		}
+	} else {
+		$debugConsole = FALSE;
+	}
+	
+	return $debugConsole;
+}
+?>
\ No newline at end of file