/** * 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))); }
public function stream($name, array $parameters = array()) { return $this->engine->stream($name, $parameters); }