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;
 }
Exemplo n.º 3
0
 /**
  * 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;
     }
 }
Exemplo n.º 4
0
 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);
 }
Exemplo n.º 5
0
 /**
  * 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;
 }