From 74cb630d8087d0198455c21a9e48f0e275a3ae94 Mon Sep 17 00:00:00 2001 From: Abel Hoogeveen Date: Wed, 6 Nov 2019 00:19:33 +0100 Subject: [PATCH] Fixed bug causing a header warning. By default, FuzeWorks\Layout doesn't redirect it's display output to FuzeWorks\Output. If this is desired behaviour the layoutDisplayEvent needs to be interrupted. This eventListener was not implemented, resulting in FuzeWorks\Layout::display output not being redirected. This patch fixes that. --- src/FuzeWorks/WebComponent.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/FuzeWorks/WebComponent.php b/src/FuzeWorks/WebComponent.php index 0db2716..d4f5a2b 100644 --- a/src/FuzeWorks/WebComponent.php +++ b/src/FuzeWorks/WebComponent.php @@ -37,6 +37,7 @@ namespace FuzeWorks; use FuzeWorks\Event\HaltExecutionEvent; +use FuzeWorks\Event\LayoutDisplayEvent; use FuzeWorks\Event\LayoutLoadEvent; use FuzeWorks\Event\RouterCallViewEvent; use FuzeWorks\Event\RouterLoadViewAndControllerEvent; @@ -158,6 +159,15 @@ class WebComponent implements iComponent return $event; }, 'coreShutdownEvent', Priority::NORMAL); + // Intercept output of Layout and redirect it to Output + Events::addListener(function($event){ + /** @var $event LayoutDisplayEvent */ + /** @var Output $output */ + $output = Factory::getInstance('output'); + $output->appendOutput($event->contents); + $event->setCancelled(true); + }, 'layoutDisplayEvent', Priority::NORMAL); + // Add HTTP method prefix to requests to views Events::addListener(function($event){ /** @var Input $input */