protected function doProcess()
{
$module = Request::getModule();
$controller = Request::getController();
$params = Request::getParams();
// try to dispatch controller
try {
// dispatch controller
$result = $this->dispatch($module, $controller, $params);
} catch (ForbiddenException $e) {
$result = $this->forbidden($e);
} catch (RedirectException $e) {
// redirect to URL
$result = $this->redirect($e->getUrl());
} catch (\Exception $e) {
$result = $this->error($e);
}
// setup layout, if needed
if ($this->useLayout()) {
// render view to layout
// needed for headScript and headStyle helpers
Layout::setContent($result->render());
Response::setBody(Layout::getInstance());
} else {
Response::setBody($result);
}
}