Example #1
0
        return implode("\n", $html);
    }
    static function getLoggingTabPane($requestId, $request)
    {
        $html = array();
        $html[] = '<div class="tab-pane" id="debug-request-' . $requestId . '-logging">';
        $html[] = '<br/><pre>';
        foreach ($request['log'] as $log) {
            $html[] = htmlspecialchars($log) . "\n";
        }
        $html[] = '</pre>';
        $html[] = '</div>';
        return implode("\n", $html);
    }
}
Debugger::$enabled = false;
// Start the session
Session::start();
?>
<!DOCTYPE html>
<html>
  <head>
    <base href="<?php 
echo Router::getBaseUrl();
?>
">
    <title>MindaPHP Debugger</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="shortcut icon" href="debugger/img/favicon.ico">
    <!-- Bootstrap -->
Example #2
0
 public static function enable($mode = NULL, $logDirectory = NULL, $email = NULL)
 {
     error_reporting(E_ALL | E_STRICT);
     if (is_bool($mode)) {
         self::$productionMode = $mode;
     } elseif (is_string($mode)) {
         $mode = preg_split('#[,\\s]+#', "{$mode} 127.0.0.1 ::1");
     }
     if (is_array($mode)) {
         self::$productionMode = !isset($_SERVER['REMOTE_ADDR']) || !in_array($_SERVER['REMOTE_ADDR'], $mode, TRUE);
     }
     if (self::$productionMode === self::DETECT) {
         if (class_exists('Environment')) {
             self::$productionMode = Environment::isProduction();
         } elseif (isset($_SERVER['SERVER_ADDR']) || isset($_SERVER['LOCAL_ADDR'])) {
             $addrs = array();
             if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                 $addrs = preg_split('#,\\s*#', $_SERVER['HTTP_X_FORWARDED_FOR']);
             }
             if (isset($_SERVER['REMOTE_ADDR'])) {
                 $addrs[] = $_SERVER['REMOTE_ADDR'];
             }
             $addrs[] = isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR'];
             self::$productionMode = FALSE;
             foreach ($addrs as $addr) {
                 $oct = explode('.', $addr);
                 if ($addr !== '::1' && (count($oct) !== 4 || $oct[0] !== '10' && $oct[0] !== '127' && ($oct[0] !== '172' || $oct[1] < 16 || $oct[1] > 31) && ($oct[0] !== '169' || $oct[1] !== '254') && ($oct[0] !== '192' || $oct[1] !== '168'))) {
                     self::$productionMode = TRUE;
                     break;
                 }
             }
         } else {
             self::$productionMode = !self::$consoleMode;
         }
     }
     if (is_string($logDirectory)) {
         self::$logDirectory = realpath($logDirectory);
         if (self::$logDirectory === FALSE) {
             throw new DirectoryNotFoundException("Directory '{$logDirectory}' is not found.");
         }
     } elseif ($logDirectory === FALSE) {
         self::$logDirectory = FALSE;
     } else {
         self::$logDirectory = defined('APP_DIR') ? APP_DIR . '/../log' : getcwd() . '/log';
     }
     if (self::$logDirectory) {
         ini_set('error_log', self::$logDirectory . '/php_error.log');
     }
     if (function_exists('ini_set')) {
         ini_set('display_errors', !self::$productionMode);
         ini_set('html_errors', FALSE);
         ini_set('log_errors', FALSE);
     } elseif (ini_get('display_errors') != !self::$productionMode && ini_get('display_errors') !== (self::$productionMode ? 'stderr' : 'stdout')) {
         throw new NotSupportedException('Function ini_set() must be enabled.');
     }
     if ($email) {
         if (!is_string($email)) {
             throw new InvalidArgumentException('Email address must be a string.');
         }
         self::$email = $email;
     }
     if (!defined('E_DEPRECATED')) {
         define('E_DEPRECATED', 8192);
     }
     if (!defined('E_USER_DEPRECATED')) {
         define('E_USER_DEPRECATED', 16384);
     }
     if (!self::$enabled) {
         register_shutdown_function(array(__CLASS__, '_shutdownHandler'));
         set_exception_handler(array(__CLASS__, '_exceptionHandler'));
         set_error_handler(array(__CLASS__, '_errorHandler'));
         self::$enabled = TRUE;
     }
 }
Example #3
0
 /**
  * Handler to catch uncaught exception.
  * @param  Exception
  * @return void
  * @internal
  */
 public static function _exceptionHandler(Exception $exception)
 {
     if (!headers_sent()) {
         // for PHP < 5.2.4
         $protocol = isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.1';
         header($protocol . ' 500', TRUE, 500);
     }
     try {
         if (self::$productionMode) {
             try {
                 self::log($exception, self::ERROR);
             } catch (Exception $e) {
                 echo 'FATAL ERROR: unable to log error';
             }
             if (self::$consoleMode) {
                 echo "ERROR: the server encountered an internal error and was unable to complete your request.\n";
             } elseif (self::isHtmlMode()) {
                 require dirname(__FILE__) . '/templates/error.phtml';
             }
         } else {
             if (self::$consoleMode) {
                 // dump to console
                 echo "{$exception}\n";
                 if ($file = self::log($exception)) {
                     echo "(stored in {$file})\n";
                     if (self::$browser) {
                         exec(self::$browser . ' ' . escapeshellarg($file));
                     }
                 }
             } elseif (self::isHtmlMode()) {
                 // dump to browser
                 self::$blueScreen->render($exception);
                 if (self::$bar) {
                     self::$bar->render();
                 }
             } elseif (!self::fireLog($exception, self::ERROR)) {
                 // AJAX or non-HTML mode
                 $file = self::log($exception);
                 if (!headers_sent()) {
                     header("X-Nette-Error-Log: {$file}");
                 }
             }
         }
         foreach (self::$onFatalError as $handler) {
             call_user_func($handler, $exception);
         }
     } catch (Exception $e) {
         if (self::$productionMode) {
             echo self::isHtmlMode() ? '<meta name=robots content=noindex>FATAL ERROR' : 'FATAL ERROR';
         } else {
             echo "FATAL ERROR: thrown ", get_class($e), ': ', $e->getMessage(), "\nwhile processing ", get_class($exception), ': ', $exception->getMessage(), "\n";
         }
     }
     self::$enabled = FALSE;
     // un-register shutdown function
     exit(255);
 }
Example #4
0
	/**
	 * Static public method to set dubugger mode.
	 * 
	 * @param boolean $mode
	 */
	static public function setMode($mode = false)
	{
		self::$enabled = $mode;
	}
Example #5
0
 /**
  * Initialisize Config
  *
  * @static
  */
 public static function init()
 {
     Debugger::$_config = Kohana::$config->load('debugger');
     Debugger::$enabled = Debugger::$_config->enabled;
 }