<?php
// src/Controller/HomePageController.php
namespace App\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Contracts\Cache\CacheInterface;
use Symfony\Contracts\Cache\ItemInterface;
use App\Repository\HomepageRepository;
use App\Repository\PostRepository;
class HomePageController extends AbstractController
{
/**
* @Route("/", name="show_home_page")
*/
public function show(HomepageRepository $homepageRepo, PostRepository $postRepo, CacheInterface $cache)
{
$post = $cache->get('home_page', function (itemInterface $item) use ($homepageRepo) {
$item->expiresAfter(31536000);
return $homepageRepo->findOneBy(array('publish' => true));
});
if(!$post){
throw $this->createNotFoundException();
}
return $this->render('homepage/homepage.html.twig', array('post' => $post));
}
}