public function handleRequest()
{
$container = $this->container;
// prepare handle request
$response = $this->prepareResponse();
$method = $container['global.server']->get('REQUEST_METHOD');
$path = $container['app']->getPath();
$this->event_dispatcher->addListener(DietcubeEvents::ROUTING, function (Event $event) use($method, $path) {
list($handler, $vars) = $this->dispatchRouter($method, $path);
$event->setRouteInfo($handler, $vars);
});
$event = new RoutingEvent($this->app, $container['router']);
$this->event_dispatcher->dispatch(DietcubeEvents::ROUTING, $event);
list($handler, $vars) = $event->getRouteInfo();
$action_result = $this->executeAction($handler, $vars);
$response = $response->setBody($action_result);
return $this->filterResponse($response);
}