Separated events into methods so they can be properly logged by Core.

This commit is contained in:
Abel Hoogeveen 2020-07-12 12:02:43 +02:00
parent c09d1a35d5
commit e3485fa256
1 changed files with 34 additions and 23 deletions

View File

@ -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);