<?php
namespace AppBundle\Controller\Prismic;
use AppBundle\Prismic\BlogPostRepository;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
/**
* @Route("/blog")
*/
class BlogPostController extends Controller
{
/**
* @var BlogPostRepository
*/
private $repository;
/**
* @param BlogPostRepository $blogPostRepository
*/
public function __construct(BlogPostRepository $blogPostRepository)
{
$this->repository = $blogPostRepository;
}
/**
* @Route("/", name="blog_post_index")
* @Template("blog_post/index.html.twig")
*
* @return array
*/
public function index(Request $request): array
{
$device = $this->get('mobile_detect.mobile_detector');
$pageSize = 18;
if ($device->isMobile()) {
$pageSize = 10;
}
$page = $request->query->get('page', 1);
return [
'blogPosts' => $this->repository->findAllOrderedByPublicationDate($pageSize, $page),
];
}
/**
* @Route("/{uid}", name="blog_post_show")
* @Template("blog_post/show.html.twig")
*
* @return array
*/
public function show(string $uid): array
{
return [
'blogPost' => $this->repository->findOneByUid($uid),
];
}
}