From 112dd6f4ae2851ee1709a233a26b9dec89148cb4 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Mon, 20 Oct 2014 10:37:41 -0700 Subject: [PATCH] more stuff --- system/src/Grav/Common/Debugger.php | 33 ++++++++++++++----- system/src/Grav/Common/Grav.php | 12 ++++++- .../Common/Service/ErrorServiceProvider.php | 4 +++ 3 files changed, 39 insertions(+), 10 deletions(-) diff --git a/system/src/Grav/Common/Debugger.php b/system/src/Grav/Common/Debugger.php index a7169ab6e..ad1bef70c 100644 --- a/system/src/Grav/Common/Debugger.php +++ b/system/src/Grav/Common/Debugger.php @@ -15,6 +15,7 @@ class Debugger protected $grav; protected $debugbar; protected $renderer; + protected $enabled; public function __construct() { @@ -26,17 +27,27 @@ class Debugger { $this->grav = Grav::instance(); - $config = $this->grav['config']; - if ($config->get('system.debugger.enabled')) { - $this->debugbar->addCollector(new \DebugBar\DataCollector\ConfigCollector((array)$config->get('system'))); + if ($this->enabled()) { + $this->debugbar->addCollector(new \DebugBar\DataCollector\ConfigCollector((array)$this->grav['config']->get('system'))); } return $this; } + public function enabled($state = null) + { + if (isset($state)) { + $this->enabled = $state; + } else { + if (!isset($this->enabled)) { + $this->enabled = $this->grav['config']->get('system.debugger.enabled'); + } + } + return $this->enabled; + } + public function addAssets() { - $config = $this->grav['config']; - if ($config->get('system.debugger.enabled')) { + if ($this->enabled()) { $assets = $this->grav['assets']; @@ -71,13 +82,18 @@ class Debugger public function render() { - $config = $this->grav['config']; - if ($config->get('system.debugger.enabled')) { + if ($this->enabled()) { echo $this->renderer->render(); } return $this; } + public function sendDataInHeaders() + { + $this->debugbar->sendDataInHeaders(); + return $this; + } + public function startTimer($name, $desription = null) { if ($name[0] == '_' || $this->grav['config']->get('system.debugger.enabled')) { @@ -97,8 +113,7 @@ class Debugger public function addMessage($message, $label = 'info', $isString = true) { - $config = $this->grav['config']; - if ($config->get('system.debugger.enabled')) { + if ($this->enabled()) { $this->debugbar['messages']->addMessage($message, $label, $isString); } return $this; diff --git a/system/src/Grav/Common/Grav.php b/system/src/Grav/Common/Grav.php index 9d4298e1b..0e114ffe2 100644 --- a/system/src/Grav/Common/Grav.php +++ b/system/src/Grav/Common/Grav.php @@ -266,7 +266,17 @@ class Grav extends Container */ public function header() { - header('Content-type: ' . $this->mime($this['uri']->extension())); + $extension = $this['uri']->extension(); + header('Content-type: ' . $this->mime($extension)); + + $header_extensions = ['json','xml','rss','atom']; + + // Set debugger data in headers + if (in_array($extension, $header_extensions)) { + $this['debugger']->enabled(false); + // $this['debugger']->sendDataInHeaders(); + + } } /** diff --git a/system/src/Grav/Common/Service/ErrorServiceProvider.php b/system/src/Grav/Common/Service/ErrorServiceProvider.php index 78afdf2c8..2a3602b21 100644 --- a/system/src/Grav/Common/Service/ErrorServiceProvider.php +++ b/system/src/Grav/Common/Service/ErrorServiceProvider.php @@ -5,6 +5,7 @@ use Pimple\Container; use Pimple\ServiceProviderInterface; use Whoops\Handler\JsonResponseHandler; use Whoops\Handler\PrettyPageHandler; +use Whoops\Handler\PlainTextHandler; use Whoops\Run; class ErrorServiceProvider implements ServiceProviderInterface @@ -23,9 +24,12 @@ class ErrorServiceProvider implements ServiceProviderInterface $json_page = new JsonResponseHandler; $json_page->onlyForAjaxRequests(true); + $whoops->pushHandler($error_page); + $whoops->pushHandler(new PlainTextHandler); $whoops->pushHandler($json_page); + $logger = $container['log']; $whoops->pushHandler(function ($exception, $inspector, $run) use($logger) { $logger->addCritical($exception->getMessage(). ' - Trace: '. $exception->getTraceAsString());