<?php
declare(strict_types=1);
namespace SpringerNature\CPS\AMEDReviewTracker\App\ViewResult;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\ViewEvent;
use Twig\Environment;
/**
* Performs actual rendering of a twig template into a raw response.
*/
class TwigViewRenderer
{
/**
* @var Environment
*/
private $twig;
/**
* TwigViewRenderer constructor.
*
* @param Environment $twig
*/
public function __construct(Environment $twig)
{
$this->twig = $twig;
}
public function onKernelView(ViewEvent $event): void
{
$value = $event->getControllerResult();
if ( ! $value instanceof ViewResult) {
return;
}
$response = new Response(
$this->twig->render(
$value->getTemplateName(),
$value->getParameters()
),
$value->getStatusCode(),
$value->getHeaders()
);
$response->setCharset($value->getCharset());
$event->setResponse($response);
}
}