public function onKernelView(GetResponseForControllerResultEvent $event)
    {
        /* @var Template $template */
        $request = $event->getRequest();
        $template = $request->attributes->get('_template');

        if (!$template instanceof Template) {
            return;
        }

        if (null === $this->twig) {
            throw new \LogicException('You can not use the "@Template" annotation if the Twig Bundle is not available.');
        }

        $parameters = $event->getControllerResult();
        $owner = $template->getOwner();
        list($controller, $action) = $owner;

        // when the annotation declares no default vars and the action returns
        // null, all action method arguments are used as default vars
        if (null === $parameters) {
            $parameters = $this->resolveDefaultParameters($request, $template, $controller, $action);
        }

        // attempt to render the actual response
        if ($template->isStreamable()) {
            $callback = function () use ($template, $parameters) {
                $this->twig->display($template->getTemplate(), $parameters);
            };

            $event->setResponse(new StreamedResponse($callback));
        } else {
            $event->setResponse(new Response($this->twig->render($template->getTemplate(), $parameters)));
        }

        // make sure the owner (controller+dependencies) is not cached or stored elsewhere
        $template->setOwner([]);
    }
public function onKernelView(GetResponseForControllerResultEvent $event)
    {
        /* @var Template $template */
        $request = $event->getRequest();
        $template = $request->attributes->get('_template');

        if (!$template instanceof Template) {
            return;
        }

        if (null === $this->twig) {
            throw new \LogicException('You can not use the "@Template" annotation if the Twig Bundle is not available.');
        }

        $parameters = $event->getControllerResult();
        $owner = $template->getOwner();
        list($controller, $action) = $owner;

        // when the annotation declares no default vars and the action returns
        // null, all action method arguments are used as default vars
        if (null === $parameters) {
            $parameters = $this->resolveDefaultParameters($request, $template, $controller, $action);
        }

        // attempt to render the actual response
        if ($template->isStreamable()) {
            $callback = function () use ($template, $parameters) {
                $this->twig->display($template->getTemplate(), $parameters);
            };

            $event->setResponse(new StreamedResponse($callback));
        } else {
            $event->setResponse(new Response($this->twig->render($template->getTemplate(), $parameters)));
        }

        // make sure the owner (controller+dependencies) is not cached or stored elsewhere
        $template->setOwner([]);
    }
public function onKernelView ( GetResponseForControllerResultEvent $ event ) { /* @var Template $template */ $ request = $ event -> getRequest ( ) ; $ template = $ request -> attributes -> get ( '_template' ) ; if ( ! $ template instanceof Template ) { return ; } if ( null === $ this -> twig ) { throw new \ LogicException ( 'You can not use the "@Template" annotation if the Twig Bundle is not available.' ) ; } $ parameters = $ event -> getControllerResult ( ) ; $ owner = $ template -> getOwner ( ) ; list ( $ controller , $ action ) = $ owner ; // when the annotation declares no default vars and the action returns // null, all action method arguments are used as default vars if ( null === $ parameters ) { $ parameters = $ this -> resolveDefaultParameters ( $ request , $ template , $ controller , $ action ) ; } // attempt to render the actual response if ( $ template -> isStreamable ( ) ) { $ callback = function ( ) use ( $ template , $ parameters ) { $ this -> twig -> display ( $ template -> getTemplate ( ) , $ parameters ) ; } ; $ event -> setResponse ( new StreamedResponse ( $ callback ) ) ; } else { $ event -> setResponse ( new Response ( $ this -> twig -> render ( $ template -> getTemplate ( ) , $ parameters ) ) ) ; } // make sure the owner (controller+dependencies) is not cached or stored elsewhere $ template -> setOwner ( [ ] ) ; }
Renders the template and initializes a new response object with the
rendered template content.
Renders the template and initializes a new response object with the rendered template content .