diff --git a/src/FuzeWorks/WebComponent.php b/src/FuzeWorks/WebComponent.php index e7b6b0c..682d572 100644 --- a/src/FuzeWorks/WebComponent.php +++ b/src/FuzeWorks/WebComponent.php @@ -131,6 +131,37 @@ class WebComponent implements iComponent self::$willHandleRequest = false; } + public function shutdownEventListener(Event $event) + { + /** @var Output $output */ + Logger::logInfo("Parsing output..."); + $output = Factory::getInstance()->output; + $output->display(); + return $event; + } + + public function layoutDisplayEventListener(Event $event) + { + /** @var $event LayoutDisplayEvent */ + /** @var Output $output */ + $output = Factory::getInstance('output'); + $output->appendOutput($event->contents); + $event->setCancelled(true); + } + + public function routerLoadViewAndControllerEventListener(Event $event) + { + /** @var Input $input */ + /** @var RouterLoadViewAndControllerEvent $event */ + $input = Factory::getInstance('input'); + $methods = $event->viewMethods[Priority::NORMAL]; + foreach ($methods as $method) + $event->addMethod(strtolower($input->method()) . '_' . $method); + + Logger::log("Added input method '" . $input->method() . "' as a prefix to view methods."); + return $event; + } + /** * Handle a Web request. * @@ -151,33 +182,13 @@ class WebComponent implements iComponent try { // Set the output to display when shutting down - Events::addListener(function ($event) { - /** @var Output $output */ - Logger::logInfo("Parsing output..."); - $output = Factory::getInstance()->output; - $output->display(); - return $event; - }, 'coreShutdownEvent', Priority::NORMAL); + Events::addListener([$this, 'shutdownEventListener'], '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); + Events::addListener([$this, 'layoutDisplayEventListener'], 'layoutDisplayEvent', Priority::NORMAL); // Add HTTP method prefix to requests to views - Events::addListener(function($event){ - /** @var Input $input */ - /** @var RouterLoadViewAndControllerEvent $event */ - $input = Factory::getInstance('input'); - $methods = $event->viewMethods[Priority::NORMAL]; - foreach ($methods as $method) - $event->addMethod(strtolower($input->method()) . '_' . $method); - return $event; - }, 'routerLoadViewAndControllerEvent', Priority::NORMAL); + Events::addListener([$this, 'routerLoadViewAndControllerEventListener'], 'routerLoadViewAndControllerEvent', Priority::NORMAL); // Create an error 500 page when a haltEvent is fired Events::addListener([$this, 'haltEventListener'], 'haltExecutionEvent', Priority::NORMAL);