Exemplo n.º 1
0
 /**
  * Handle action response
  *
  * @param ControllerResponseEvent $event
  */
 public function onActionResponse(ControllerResponseEvent $event)
 {
     if ($event->getActionResponse() instanceof TwigView) {
         $event->getActionResponse()->setTwig($this->twig);
         return;
     }
     $annotations = $this->annotationCollector->getMethodAnnotations(get_class($event->getController()), $event->getActionName());
     if (isset($annotations['View']) && ($annotations['View'][0] = 'Twig')) {
         if (!isset($annotations['Template'])) {
             return;
         }
         $view = new TwigView($annotations['Template'][0], $event->getActionResponse());
         $view->setTwig($this->twig);
         $event->setActionResponse($view);
     }
 }
Exemplo n.º 2
0
 /**
  * @param          $route
  * @param Request  $request
  * @param Response $response
  */
 private function handleRoute($route, Request $request, Response $response)
 {
     $theRoute = $this->routeCollection->get($route['_route']);
     $controllerClass = $theRoute->getOption('karmaController');
     $action = $theRoute->getOption('karmaAction');
     $controller = new $controllerClass($this->dispatcher, $request, $response);
     /* @var $controller \ThinFrame\Karma\ViewController\AbstractController */
     unset($route['_route']);
     $this->dispatcher->trigger($controllerActionEvent = new ControllerActionEvent($request, $response, $controller, $action, $route));
     $actionResponse = $controller->trigger($action, $controllerActionEvent->getArguments());
     $this->dispatcher->trigger($controllerResponseEvent = new ControllerResponseEvent($request, $response, $controller, $action, $controllerActionEvent->getArguments(), $actionResponse));
     $response->setContent((string) $controllerResponseEvent->getActionResponse());
 }