public function getPanelContent() { $content = array(); if (sfConfig::get('sf_logging_enabled')) { $context = sfContext::getInstance(); $content['request'] = sfDebug::requestAsArray($context->getRequest()); $content['response'] = sfDebug::responseAsArray($context->getResponse()); $content['user'] = sfDebug::userAsArray($context->getUser()); $content['settings'] = sfDebug::settingsAsArray(); $content['globals'] = sfDebug::globalsAsArray(); $content['php'] = sfDebug::phpInfoAsArray(); $content['symfony'] = sfDebug::symfonyInfoAsArray(); } else { $content['Logging disabled'] = array(); } return $content; }
public function getPanelContent() { $config = array('debug' => sfConfig::get('sf_debug') ? 'on' : 'off', 'xdebug' => extension_loaded('xdebug') ? 'on' : 'off', 'logging' => sfConfig::get('sf_logging_enabled') ? 'on' : 'off', 'cache' => sfConfig::get('sf_cache') ? 'on' : 'off', 'compression' => sfConfig::get('sf_compressed') ? 'on' : 'off', 'tokenizer' => function_exists('token_get_all') ? 'on' : 'off', 'eaccelerator' => extension_loaded('eaccelerator') && ini_get('eaccelerator.enable') ? 'on' : 'off', 'apc' => extension_loaded('apc') && ini_get('apc.enabled') ? 'on' : 'off', 'xcache' => extension_loaded('xcache') && ini_get('xcache.cacher') ? 'on' : 'off'); $html = '<ul id="sfWebDebugConfigSummary">'; foreach ($config as $key => $value) { $html .= '<li class="is' . $value . ($key == 'xcache' ? ' last' : '') . '">' . $key . '</li>'; } $html .= '</ul>'; $context = sfContext::getInstance(); $html .= $this->formatArrayAsHtml('request', sfDebug::requestAsArray($context->getRequest())); $html .= $this->formatArrayAsHtml('response', sfDebug::responseAsArray($context->getResponse())); $html .= $this->formatArrayAsHtml('user', sfDebug::userAsArray($context->getUser())); $html .= $this->formatArrayAsHtml('settings', sfDebug::settingsAsArray()); $html .= $this->formatArrayAsHtml('globals', sfDebug::globalsAsArray()); $html .= $this->formatArrayAsHtml('php', sfDebug::phpInfoAsArray()); $html .= $this->formatArrayAsHtml('symfony', sfDebug::symfonyInfoAsArray()); return $html; }
/** * Gets the stack trace for this exception. */ protected static function outputStackTrace(Exception $exception) { $format = 'html'; $code = '500'; $text = 'Internal Server Error'; $response = null; if (class_exists('sfContext', false) && sfContext::hasInstance() && is_object($request = sfContext::getInstance()->getRequest()) && is_object($response = sfContext::getInstance()->getResponse())) { $dispatcher = sfContext::getInstance()->getEventDispatcher(); if (sfConfig::get('sf_logging_enabled')) { $dispatcher->notify(new sfEvent($exception, 'application.log', array($exception->getMessage(), 'priority' => sfLogger::ERR))); } $event = $dispatcher->notifyUntil(new sfEvent($exception, 'application.throw_exception')); if ($event->isProcessed()) { return; } if ($response->getStatusCode() < 300) { // status code has already been sent, but is included here for the purpose of testing $response->setStatusCode(500); } $response->setContentType('text/html'); if (!sfConfig::get('sf_test')) { foreach ($response->getHttpHeaders() as $name => $value) { header($name . ': ' . $value); } } $code = $response->getStatusCode(); $text = $response->getStatusText(); $format = $request->getRequestFormat(); if (!$format) { $format = 'html'; } if ($mimeType = $request->getMimeType($format)) { $response->setContentType($mimeType); } } else { // a backward compatible default if (!sfConfig::get('sf_test')) { header('Content-Type: text/html; charset=' . sfConfig::get('sf_charset', 'utf-8')); } } // send an error 500 if not in debug mode if (!sfConfig::get('sf_debug')) { if ($template = self::getTemplatePathForError($format, false)) { include $template; return; } } // when using CLI, we force the format to be TXT if (0 == strncasecmp(PHP_SAPI, 'cli', 3)) { $format = 'txt'; } $message = null === $exception->getMessage() ? 'n/a' : $exception->getMessage(); $name = get_class($exception); $traces = self::getTraces($exception, $format); // dump main objects values $sf_settings = ''; $settingsTable = $requestTable = $responseTable = $globalsTable = $userTable = ''; if (class_exists('sfContext', false) && sfContext::hasInstance()) { $context = sfContext::getInstance(); $settingsTable = self::formatArrayAsHtml(sfDebug::settingsAsArray()); $requestTable = self::formatArrayAsHtml(sfDebug::requestAsArray($context->getRequest())); $responseTable = self::formatArrayAsHtml(sfDebug::responseAsArray($context->getResponse())); $userTable = self::formatArrayAsHtml(sfDebug::userAsArray($context->getUser())); $globalsTable = self::formatArrayAsHtml(sfDebug::globalsAsArray()); } if (isset($response) && $response) { $response->sendHttpHeaders(); } if ($template = self::getTemplatePathForError($format, true)) { if (isset($dispatcher)) { ob_start(); include $template; $content = ob_get_clean(); $event = $dispatcher->filter(new sfEvent($response, 'response.filter_content'), $content); echo $event->getReturnValue(); } else { include $template; } return; } }
protected function sendConfig() { $context = sfContext::getInstance(); $config = array('debug' => sfConfig::get('sf_debug') ? 'on' : 'off', 'xdebug' => extension_loaded('xdebug') ? 'on' : 'off', 'logging' => sfConfig::get('sf_logging_enabled') ? 'on' : 'off', 'cache' => sfConfig::get('sf_cache') ? 'on' : 'off', 'compression' => sfConfig::get('sf_compressed') ? 'on' : 'off', 'tokenizer' => function_exists('token_get_all') ? 'on' : 'off', 'eaccelerator' => extension_loaded('eaccelerator') && ini_get('eaccelerator.enable') ? 'on' : 'off', 'apc' => extension_loaded('apc') && ini_get('apc.enabled') ? 'on' : 'off', 'xcache' => extension_loaded('xcache') && ini_get('xcache.cacher') ? 'on' : 'off', 'request' => sfDebug::removeObjects(sfDebug::requestAsArray($context->getRequest())), 'response' => sfDebug::removeObjects(sfDebug::responseAsArray($context->getResponse())), 'user' => sfDebug::removeObjects(sfDebug::userAsArray($context->getUser())), 'settings' => sfDebug::removeObjects(sfDebug::settingsAsArray()), 'globals' => sfDebug::removeObjects(sfDebug::globalsAsArray()), 'php' => sfDebug::removeObjects(sfDebug::phpInfoAsArray()), 'symfony' => sfDebug::removeObjects(sfDebug::symfonyInfoAsArray())); $this->sfFire->dump('Config', $config); }
/** * Gets the stack trace for this exception. */ protected static function outputStackTrace($exception) { if (class_exists('sfContext', false) && sfContext::hasInstance()) { $dispatcher = sfContext::getInstance()->getEventDispatcher(); if (sfConfig::get('sf_logging_enabled')) { $dispatcher->notify(new sfEvent($exception, 'application.log', array($exception->getMessage(), 'priority' => sfLogger::ERR))); } $event = $dispatcher->notifyUntil(new sfEvent($exception, 'application.throw_exception')); if ($event->isProcessed()) { return; } } // send an error 500 if not in debug mode if (!sfConfig::get('sf_debug')) { $files = array(); // first check for app/project specific error page, can only do this if we have a context if (sfConfig::get('sf_app_config_dir')) { $files[] = sfConfig::get('sf_app_config_dir') . '/error_500.php'; } $files[] = sfConfig::get('sf_config_dir') . '/error_500.php'; $files[] = sfConfig::get('sf_web_dir') . '/errors/error500.php'; $files[] = dirname(__FILE__) . '/data/error500.php'; foreach ($files as $file) { if (is_readable($file)) { include $file; return; } } } $message = null !== $exception->getMessage() ? $exception->getMessage() : 'n/a'; $name = get_class($exception); $format = 0 == strncasecmp(PHP_SAPI, 'cli', 3) ? 'plain' : 'html'; $traces = self::getTraces($exception, $format); // dump main objects values $sf_settings = ''; $settingsTable = $requestTable = $responseTable = $globalsTable = $userTable = ''; if (class_exists('sfContext', false) && sfContext::hasInstance()) { $context = sfContext::getInstance(); $settingsTable = self::formatArrayAsHtml(sfDebug::settingsAsArray()); $requestTable = self::formatArrayAsHtml(sfDebug::requestAsArray($context->getRequest())); $responseTable = self::formatArrayAsHtml(sfDebug::responseAsArray($context->getResponse())); $userTable = self::formatArrayAsHtml(sfDebug::userAsArray($context->getUser())); $globalsTable = self::formatArrayAsHtml(sfDebug::globalsAsArray()); } include dirname(__FILE__) . '/data/exception.' . ($format == 'html' ? 'php' : 'txt'); }
public function getCurrentConfigAsArray() { $content = array(); $context = sfContext::getInstance(); $content['request'] = sfDebug::requestAsArray($context->getRequest()); $content['response'] = sfDebug::responseAsArray($context->getResponse()); $content['user'] = sfDebug::userAsArray($context->getUser()); $content['settings'] = sfDebug::settingsAsArray(); $content['globals'] = sfDebug::globalsAsArray(); $content['php'] = sfDebug::phpInfoAsArray(); $content['symfony'] = sfDebug::symfonyInfoAsArray(); return $content; }