Example #1
0
    public static function _init()
    {
        self::$time = microtime(TRUE);
        self::$consoleMode = PHP_SAPI === 'cli';
        self::$productionMode = self::DETECT;
        if (self::$consoleMode) {
            self::$source = empty($_SERVER['argv']) ? 'cli' : 'cli: ' . implode(' ', $_SERVER['argv']);
        } else {
            self::$ajaxDetected = isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest';
            if (isset($_SERVER['REQUEST_URI'])) {
                self::$source = (isset($_SERVER['HTTPS']) && strcasecmp($_SERVER['HTTPS'], 'off') ? 'https://' : 'http://') . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : '')) . $_SERVER['REQUEST_URI'];
            }
        }
        self::$logger = new Logger();
        self::$logger->directory =& self::$logDirectory;
        self::$logger->email =& self::$email;
        self::$logger->mailer =& self::$mailer;
        Logger::$emailSnooze =& self::$emailSnooze;
        self::$fireLogger = new FireLogger();
        self::$blueScreen = new DebugBlueScreen();
        self::$blueScreen->addPanel(create_function('$e', '
			if ($e instanceof TemplateException) {
				$link = DebugHelpers::editorLink($e->sourceFile, $e->sourceLine);
				return array(
					\'tab\' => \'Template\',
					\'panel\' => \'<p><b>File:</b> \' . ($link ? \'<a href="\' . htmlspecialchars($link) . \'">\' : \'\') . htmlspecialchars($e->sourceFile) . ($link ? \'</a>\' : \'\')
					. \'&nbsp; <b>Line:</b> \' . ($e->sourceLine ? $e->sourceLine : \'n/a\') . \'</p>\'
					. ($e->sourceLine ? \'<pre>\' . DebugBlueScreen::highlightFile($e->sourceFile, $e->sourceLine) . \'</pre>\' : \'\')
				);
			}
		'));
        self::$bar = new DebugBar();
        self::$bar->addPanel(new DefaultBarPanel('time'));
        self::$bar->addPanel(new DefaultBarPanel('memory'));
        self::$bar->addPanel(self::$errorPanel = new DefaultBarPanel('errors'));
        self::$bar->addPanel(self::$dumpPanel = new DefaultBarPanel('dumps'));
    }
Example #2
0
    /**
     * Static class constructor.
     * @internal
     */
    public static function _init()
    {
        self::$time = isset($_SERVER['REQUEST_TIME_FLOAT']) ? $_SERVER['REQUEST_TIME_FLOAT'] : microtime(TRUE);
        self::$consoleMode = PHP_SAPI === 'cli';
        self::$productionMode = self::DETECT;
        if (self::$consoleMode) {
            self::$source = empty($_SERVER['argv']) ? 'cli' : 'cli: ' . implode(' ', $_SERVER['argv']);
        } else {
            self::$ajaxDetected = isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest';
            if (isset($_SERVER['REQUEST_URI'])) {
                self::$source = (isset($_SERVER['HTTPS']) && strcasecmp($_SERVER['HTTPS'], 'off') ? 'https://' : 'http://') . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : '')) . $_SERVER['REQUEST_URI'];
            }
        }
        self::$logger = new Logger();
        self::$logDirectory =& self::$logger->directory;
        self::$email =& self::$logger->email;
        self::$mailer =& self::$logger->mailer;
        self::$emailSnooze =& Logger::$emailSnooze;
        self::$fireLogger = new FireLogger();
        self::$blueScreen = new DebugBlueScreen();
        self::$blueScreen->addPanel(create_function('$e', '
			if ($e instanceof TemplateException) {
				return array(
					\'tab\' => \'Template\',
					\'panel\' => \'<p><b>File:</b> \' . DebugHelpers::editorLink($e->sourceFile, $e->sourceLine)
					. \'&nbsp; <b>Line:</b> \' . ($e->sourceLine ? $e->sourceLine : \'n/a\') . \'</p>\'
					. ($e->sourceLine ? DebugBlueScreen::highlightFile($e->sourceFile, $e->sourceLine) : \'\')
				);
			} elseif ($e instanceof NeonException && preg_match(\'#line (\\d+)#\', $e->getMessage(), $m)) {
				if ($item = DebugHelpers::findTrace($e->getTrace(), \'ConfigNeonAdapter::load\')) {
					return array(
						\'tab\' => \'NEON\',
						\'panel\' => \'<p><b>File:</b> \' . DebugHelpers::editorLink($item[\'args\'][0], $m[1]) . \'&nbsp; <b>Line:</b> \' . $m[1] . \'</p>\'
							. DebugBlueScreen::highlightFile($item[\'args\'][0], $m[1])
					);
				} elseif ($item = DebugHelpers::findTrace($e->getTrace(), \'Neon::decode\')) {
					return array(
						\'tab\' => \'NEON\',
						\'panel\' => DebugBlueScreen::highlightPhp($item[\'args\'][0], $m[1])
					);
				}
			}
		'));
        self::$bar = new DebugBar();
        self::$bar->addPanel(new DefaultBarPanel('time'));
        self::$bar->addPanel(new DefaultBarPanel('memory'));
        self::$bar->addPanel(self::$errorPanel = new DefaultBarPanel('errors'));
        // filled by _errorHandler()
        self::$bar->addPanel(self::$dumpPanel = new DefaultBarPanel('dumps'));
        // filled by barDump()
    }