/**
  * Renders the template and initializes a new response object with the
  * rendered template content.
  *
  * @param GetResponseForControllerResultEvent $event A GetResponseForControllerResultEvent instance
  *
  * @return null|mixed
  */
 public function onKernelView(GetResponseForControllerResultEvent $event)
 {
     $request = $event->getRequest();
     $parameters = $event->getControllerResult();
     if (!is_array($parameters)) {
         return $parameters;
     }
     if (!($template = $request->attributes->get('_template'))) {
         return $parameters;
     }
     if (!$request->attributes->get('_template_streamable')) {
         $response = new Response($this->engine->render($template, $parameters));
         $event->setResponse($response);
         return;
     }
     // attempt to render the actual response
     if ($template->isStreamable()) {
         $event->setResponse(new StreamedResponse(function () use($template, $parameters) {
             return $this->engine->stream($template, $parameters);
         }));
     }
     $event->setResponse(new Response($this->engine->render($template->getTemplate(), $parameters)));
 }
Ejemplo n.º 2
0
 public function stream($name, array $parameters = array())
 {
     return $this->engine->stream($name, $parameters);
 }