diff --git a/system/src/Grav/Common/Grav.php b/system/src/Grav/Common/Grav.php index 8a300e4cf..227f9e225 100644 --- a/system/src/Grav/Common/Grav.php +++ b/system/src/Grav/Common/Grav.php @@ -127,10 +127,16 @@ class Grav extends Container }); } - // Set the header type - $this->header(); + $output = $this->output; + + // Support for custom output providers like Slim Framework. + if (!$output instanceof \Psr\Http\Message\ResponseInterface) { + // Set the header type + $this->header(); + + echo $output; + } - echo $this->output; $debugger->render(); $this->fireEvent('onOutputRendered'); diff --git a/system/src/Grav/Common/Service/OutputServiceProvider.php b/system/src/Grav/Common/Service/OutputServiceProvider.php index 41e3822a2..0f4567a60 100644 --- a/system/src/Grav/Common/Service/OutputServiceProvider.php +++ b/system/src/Grav/Common/Service/OutputServiceProvider.php @@ -8,6 +8,8 @@ namespace Grav\Common\Service; +use Grav\Common\Page\Page; +use Grav\Common\Twig\Twig; use Pimple\Container; use Pimple\ServiceProviderInterface; @@ -16,7 +18,13 @@ class OutputServiceProvider implements ServiceProviderInterface public function register(Container $container) { $container['output'] = function ($c) { - return $c['twig']->processSite($c['page']->templateFormat()); + /** @var Twig $twig */ + $twig = $c['twig']; + + /** @var Page $page */ + $page = $c['page']; + + return $twig->processSite($page->templateFormat()); }; } }