<?php
declare(strict_types=1);
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController as BaseAbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\Service\Attribute\Required;
class AbstractController extends BaseAbstractController
{
protected RequestStack $requestStack;
#[Required]
public function setRequestStack(RequestStack $requestStack): AbstractController
{
$this->requestStack = $requestStack;
return $this;
}
public function renderCached(string $view, callable $paramGenerator, int $ttl = 3600): Response
{
$hash = sha1(print_r($this->requestStack->getCurrentRequest()->attributes->all(), true));
$key = 'tplxp:'.$view.':'.$hash;
//$response = apcu_fetch($key);
$response = false;
if (!$response || isset($_GET['reset_apcu_cache'])) {
$response = $this->render($view, $paramGenerator());
//apcu_store($key, $response, $ttl);
}
return $response;
}
}