src/App/ViewResult/TwigViewRenderer.php line 31

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace SpringerNature\CPS\AMEDReviewTracker\App\ViewResult;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpKernel\Event\ViewEvent;
  6. use Twig\Environment;
  7. /**
  8.  * Performs actual rendering of a twig template into a raw response.
  9.  */
  10. class TwigViewRenderer
  11. {
  12.     /**
  13.      * @var Environment
  14.      */
  15.     private $twig;
  16.     /**
  17.      * TwigViewRenderer constructor.
  18.      *
  19.      * @param Environment $twig
  20.      */
  21.     public function __construct(Environment $twig)
  22.     {
  23.         $this->twig $twig;
  24.     }
  25.     public function onKernelView(ViewEvent $event): void
  26.     {
  27.         $value $event->getControllerResult();
  28.         if ( ! $value instanceof ViewResult) {
  29.             return;
  30.         }
  31.         $response = new Response(
  32.             $this->twig->render(
  33.                 $value->getTemplateName(),
  34.                 $value->getParameters()
  35.             ),
  36.             $value->getStatusCode(),
  37.             $value->getHeaders()
  38.         );
  39.         $response->setCharset($value->getCharset());
  40.         $event->setResponse($response);
  41.     }
  42. }